C# 语法练习(3): 运算符



基本: .  ()  []  x++  x--  new  typeof  checked  unchecked  ->  ::

一元: +  -  !  ~  ++x  --x  (T)x  True  False  &  sizeof

乘除: *  /  %

加减: +  -

移位: <<  >>

关系: <  >  <=  >=  is  as  

相等: ==  !=

逻辑: &  ^  |

条件: &&  ||

赋值: =  +=  -=  *=  /=  %=  &=  |=  ^=  <<=  >>=  

选择: ?:  ??

其他: =>


 
   

整数 / 整数 = 整数

using System;



class MyClass

{

    static void Main()

    {

        double d;

        d = 14 / 4;

        Console.WriteLine(d);    //3

        d = 14 / 4.0;

        Console.WriteLine(d);    //3.5

        d = 14.0 / 4.0;

        Console.WriteLine(d);    //3.5

        d = 14.0 / 4;

        Console.WriteLine(d);    //3.5



        Console.WriteLine();



        float f;

        f = 14 / 4;

        Console.WriteLine(f);    //3

        f = (float)(14.0 / 4.0); /* 默认返回 double, 因而需要转换 */

        Console.WriteLine(f);    //3.5



        Console.WriteLine();



        int i;

        i = 14 / 4;

        Console.WriteLine(i);    //3

        i = (int)(14.0 / 4.0);

        Console.WriteLine(i);    //3

        i = 14 % 4;

        Console.WriteLine(i);    //2



        Console.ReadKey();

    }

}


 
   

++ -- 可以对 double 类型

using System;



class MyClass

{

    static void Main()

    {

        double f = 1.5;

        f++; Console.WriteLine(f); //2.5

        f--; Console.WriteLine(f); //1.5

        Console.WriteLine(++f);    //2.5

        Console.WriteLine(--f);    //1.5



        Console.ReadKey();

    }

}


 
   

?:

using System;



class MyClass

{

    static void Main()

    {

        int n, a=11, b=22;



        n = a > b ? a : b;

        Console.WriteLine(n); //22

        n = a < b ? a : b;

        Console.WriteLine(n); //11



        Console.ReadKey();

    }

}


 
   

??

using System;



class MyClass

{

    static void Main()

    {

        int? x = null;        /* 给变量赋 null 的写法, 一般用于数值和布尔类型 */

        int y;



        y = x ?? -1;          /* 如果 x 为 null 将返回后者, 反之返回 x */

        Console.WriteLine(y); // -1



        x = 9;

        y = x ?? -1;

        Console.WriteLine(y); // 9



        Console.ReadKey();

    }

}


 
   

=>

using System;

using System.Linq;



class MyClass

{

    static void Main()

    {

        int n1, n2;



        int[] ns = {22, 333, 4444, 9};

        n1 = ns.Max(num => num);

        n2 = ns.Min(num => num);

        Console.WriteLine("{0}, {1}", n1, n2);       //4444, 9



        string[] ss = {"aaa", "bbbb", "ccccc", "dd"};

        n1 = ss.Max(str => str.Length);

        n2 = ss.Min(str => str.Length);

        Console.WriteLine("{0}, {1}", n1, n2);       //5, 2



        Console.ReadKey();

    }

}


 
   

& | ^ !

using System;



class MyClass

{

    static void Main()

    {

        bool b;



        b = true & true;   Console.WriteLine(b);  // True

        b = true & false;  Console.WriteLine(b);  // False

        b = false & false; Console.WriteLine(b);  // False



        b = true | true;   Console.WriteLine(b);  // True

        b = true | false;  Console.WriteLine(b);  // True

        b = false | false; Console.WriteLine(b);  // False



        b = true ^ true;   Console.WriteLine(b);  // False

        b = true ^ false;  Console.WriteLine(b);  // True

        b = false ^ false; Console.WriteLine(b);  // False



        b = !true;         Console.WriteLine(b);  // False

        b = !false;        Console.WriteLine(b);  // True



        Console.ReadKey();

    }

}


 
   

&& ||; 在条件判断时, 应尽量使用 &&、|| 而不是 &、|; 因为后者总是要计算出结果, 因而会慢.

using System;



class MyClass

{

    static void Main()

    {

        bool b;



        /* 在前两种情形下, && 不再判断其后的值 */

        b = false && true;  Console.WriteLine(b);  // False

        b = false && false; Console.WriteLine(b);  // False

        b = true && true;   Console.WriteLine(b);  // True

        b = true && false;  Console.WriteLine(b);  // False



        /* 在前两种情形下, || 不再判断其后的值 */

        b = true || true;   Console.WriteLine(b);  // True

        b = true || false;  Console.WriteLine(b);  // True

        b = false || true;  Console.WriteLine(b);  // True

        b = false || false; Console.WriteLine(b);  // False



        Console.ReadKey();

    }

}


 
   

你可能感兴趣的:(运算符)