|
主题设置

卡片式面板通常用于非白色背景色的主体内

算数运算符

算数运算符可以用于数学计算。

算数运算符

  • +:加法运算
  • -:减法运算/取负运算
  • *:乘法运算
  • /:除法运算
  • %:取余
  • ++:自加
  • --:自减
// 除法运算(整数相除取整,小数相除得到小数)
110 / 100 = 1
110f / 100f = 1.1
110d / 100d = 1.1
110d / 100 = 1.1
110 / 100d = 1.1

赋值运算符

算数赋值运算符

  • =:将右边变量的值赋给左边变量
  • +=:a+=b 等价于 a=a+b
  • -=:a-=b 等价于 a=a-b
  • *=:a*=b 等价于 a=a*b
  • /=:a/=b 等价于 a=a/b
  • %=:a%=b 等价于 a=a%b

布尔赋值运算符

  • &=:a&=b 等价于 a=a&b
  • |=:a|=b 等价于 a=a|b
  • ^=:a^=b 等价于 a=a^b

位移赋值运算符

  • >>=:var1>>=var2 等价于 var1=var1>>var2
  • <<=:var1<<=var2 等价于 var1=var1<

关系与逻辑运算符

  • <:小于
  • >:大于
  • <=:小于等于
  • >=:大于等于
  • ==:等于
  • !=:不等于
  • &&:与(同时为真,则真),比逻辑与的性能好,如果 var1 已经能判断结果,就不需要判断 var2 了
  • ||:或(一个为真,则真),比逻辑或的性能好,如果 var1 已经能判断结果,就不需要判断 var2 了
  • !:非(真则假,假则真)
  • &:逻辑与(var1=var2&var3,var2 和 var3 都是 true,则 var1 为 true,否则为 false),总是要判断 var1 和 var2
  • |:逻辑或(var1=var2|var3,var2 和 var3 有一个为 true,var1 为 true,否则为 false),总是要判断 var1 和 var2
  • ^:逻辑异或(var1=var2^var3,var2 和 var3 中有且仅有一个是 true,var1 的值就是 true,否则为 false)

按位运算符

  • &(二元):按位与
  • |(二元):按位或
  • ^(二元):按位异或
  • ~(一元):按位取反
// 按位与
1&1--->1
1&0--->0
0&1--->0
0&0--->0

// 按位或
1|1--->1
1|0--->1
0|1--->1
0|0--->0

// 按位异或
// 与逻辑异或相同,有且只有一个是1,最终才是1
1^1--->0
1^0--->1
0^1--->1
0^0--->0

// 按位运算符实例
int result,op1,op2;
op1 = 4;			// 二进制形式 100
op2 = 5;			// 二进制形式 101
result = op1&op2;	// 二进制形式 100,所以最后值为 4
result = op1|op2;	// 二进制形式 101,所以最后值为 5

位移运算符

  • >>:var1 = var2>>var3,把 var2 的二进制值向右移动 var3 位
  • <<:var1 = var2<<var3,把 var2 的二进制值向左移动 var3 位
int var1;
int var2 = 10;	// 二进制是 1010
int var3 = 2;
var1 = var2 << var3;	// 向左移两位后是 101000,所以是 40(实际上向左移一位,就将原始值乘以 2,移两位就再乘以 2,……)

其他运算符

  • new:创建一个类的实例:new Class1()
  • typeof:获取数据类型说明
  • .:获取对象的方法或属性
  • ? ::三元运算符,string str1 = a>b ? "变量a大于变量b" : "变量a小于等于变量b"
  • ??:如果前面的变量值为 null,则结果为后面的变量值,否则结果为前面的变量值,str3 = str1 ?? str2;

运算符的优先级

优先级由高到低:

  1. ++、--(用作前缀)、()、+、-(一元)、!、~
  2. *、/、%
  3. +、-
  4. <<、>>
  5. ==、!=
  6. &
  7. ^
  8. |
  9. &&
  10. ||
  11. =、*=、/=、%=、-=、<<=、>>=、&=、^=、|=
  12. ++、--(用作后缀)