C#编程基础第六课:C#中三元运算符的初级使用和嵌套

版权声明:王迪 https://blog.csdn.net/dnruanjian/article/details/83860550

知识点:三元运算符的使用。

1、三元运算符

三元运算符的初级使用:

符号: ?:

举例:int c=bool ? a : b

当bool=true,c=表达式a,当bool=false,c=表达式b。

  • 三元运算符?:是 if~else 语句的简写形式
  • 书写格式如下:变量 = 布尔表达式 ? 语句1 : 语句2 ;  
  • 如果问号“?”前的表达式为真,则计算语句 1 的值,并将结果赋值给变量,否则将计算语句 2 的值,并将结果赋值给变量
  • 特点:代码比较简洁, 并且有一个返回值,但可读性较差。

代码练习:输入整数,输出它的绝对值

        static void Main(string[] args)
        {
            //输入一个整数,输出它的绝对值
            //输出一句话,提示用户输入信息:
            Console.Write("请输入整数a:");
            //声明一个int类型变量,用来存放用户输入的数据信息
            int a = int.Parse(Console.ReadLine());
            int b;//声明一个整型变量b,用来存放整数a的绝对值
            if (a >= 0)
            {
                b = a;//如果a大于等于0,那么它的绝对值就是它本身,所以将a直接赋值给b
            }
            else
            {
                b = -a;//如果a小于0,那么它的绝对值就是它的负数,所以将-a赋值给b
            }
            Console.WriteLine("整数a的绝对值是" + b);
            Console.ReadLine();
        }

利用三元运算符来完成:

        static void Main(string[] args)
        {
            //输入一个整数,输出它的绝对值
            //输出一句话,提示用户输入信息:
            Console.Write("请输入整数a:");
            //声明一个int类型变量,用来存放用户输入的数据信息
            int a = int.Parse(Console.ReadLine());
            int b;//声明一个整型变量b,用来存放整数a的绝对值
            b = a >= 0 ? a : -a;//将三元运算符的结果赋值给变量b(如果a大于等于0,返回a,并将结果赋值给b,否则返回-a,并将结果赋值给b)
            Console.WriteLine("整数a的绝对值是:"+b);
            Console.ReadLine();
         }

三元运算符的嵌套使用:

符号: ?  :  ? :

可以借助小括号,进行优先级设定

代码练习:输入三个整数,输出较大的数

        static void Main(string[] args)
        {
            //输入三个整数,输出较大的数(用三元运算符完成)
            Console.Write("请输入整数a:");
            int a = int.Parse(Console.ReadLine());
            Console.Write("请输入整数b:");
            int b = int.Parse(Console.ReadLine());
            Console.Write("请输入整数c:");
            int c = int.Parse(Console.ReadLine());
            int max;//声明一个变量max,用来存放较大的数值
            max=(a>b?a:b)>c?(a > b ? a : b):c;//将三元运算符的结果,赋值给变量max
            Console.WriteLine("较大的数是:"+max);
            Console.ReadLine();
       }

2、三元运算符的优先级

举例:求以下输出结果:

            int a= 3 < 8 ? (9 < 6 ? 7 : 5) : 2 > 0 ? 4 : 1;
            Console.WriteLine(a);

//求3<8?(9<6?7:5):2>0?4:1
//括号的优先级是最高的,所以先算括号里的(9<6?7:5)得到5,
//然后算式变成 3<8?5:2>0?4:1;
//?:条件运算符,三目运算是从右往左分组计算的,所以先计算2>0?4:1,得到4;
//然后算式变成3<8?5:4,这就很easy啦,直接得到结果5;

3、分支语句总结:

if语句: 适合判断一些连续的值,可与else或else if配合使用。

switch语句: 适合判断一些等值情况。在使用的时候要注意每个case语句之后都必须有break语句,可配合default语句使用。

三元运算符: 适用于简单的赋值语句,适用于判断有两个结果的情况,可读性较差。

猜你喜欢

转载自blog.csdn.net/dnruanjian/article/details/83860550