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

基本: . x x-- typeof checked unchecked -> ::
元: + - ! ~ x --x (T)x True False &
乘除: * / %
加减: + -
移位: << >>
关系: < > <= >= is as
相等: !=
逻辑: & ^ |
条件: && ||
赋值: = -= *= /= %= &= |= ^= <<= >>=
选择: ?: ??
其他: =>


  整数 / 整数 = 整数

using ;

MyClass
{
   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;

     i;
    i = 14 / 4;
    Console.WriteLine(i);  //3
    i = ()(14.0 / 4.0);
    Console.WriteLine(i);  //3
    i = 14 % 4;
    Console.WriteLine(i);  //2

    Console.ReadKey;
  }
}


   -- 可以对 double 类型

using ;

MyClass
{
   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 ;

MyClass
{
   void Main
  {
     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 ;

MyClass
{
   void Main
  {
    ? x = null;    /* 给变量赋 null 写法, 般用于数值和布尔类型 */
     y;

    y = x ?? -1;     /* 如果 x 为 null 将返回后者, 反的返回 x */
    Console.WriteLine(y); // -1

    x = 9;
    y = x ?? -1;
    Console.WriteLine(y); // 9

    Console.ReadKey;
  }
}


  =>

using ;
using .Linq;

MyClass
{
   void Main
  {
     n1, n2;

     ns = {22, 333, 4444, 9};
    n1 = ns.Max(num => num);
    n2 = ns.Min(num => num);
    Console.WriteLine("{0}, {1}", n1, n2);   //4444, 9

     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 ;

MyClass
{
   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 ;

MyClass
{
   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;
  }
}




Tags:  c语言的运算符 c语言位运算符 c语言运算符优先级 c语言运算符

延伸阅读

最新评论

发表评论