原文链接:http://blog.csdn.net/u011593278/article/details/9737183
1. 当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。比如,参与运算的
变量中,有整型int,有双精度浮点型double,有短整型short,那么最后的结果类型就是double。
2. int a = 1;
int b = 2;
double c = (double)a / b;
上面的代码中,a与b都是整型,但是通过(double)a这种强制类型转换将a转换为一个匿名的变量,该变量的类型是double,但是要注意:a本身依旧是int类型,而不是double类型,这样,(double)a / b就是double类型除以int类型,结果自然是double类型。
3. 取模运算符(余数):使用%表示。
int a = 5;
int b = 3;
int c = a % b;
上面代码的运行结果是2,因为5除以3结果是1余2。
取模的规律:取模的结果符号永远与被除数的符号相同
int a = 5;
int b = -3;
int c = a % b;
被除数是5,那么取模的结果是2
int a = -5;
int b = 3;
int c = a % b;
被除数是-5,那么取模的结果是-2。
4. 关系运算符:大于(>)、小于(<)、等于(==)、不等于(!=)、大于等于(>=)、小于等于(<=),
关系运算的结果是个boolean值。
5. 逻辑运算符:重点讲解两个,逻辑运算符本身也返回一个boolean值。
1) 逻辑与:使用&&表示,逻辑与是个双目运算符(即有两个操作数的运算符),只有当两个操作数
都为真的时候,结果才为真;其余情况结果均为假。逻辑与表示的并且的意思。
2) 逻辑或:使用||表示,逻辑或也是个双目运算符,只有当两个操作数都为假的时候,结果才为假;
其余情况结果均为真。逻辑或表示或者的意思。
6. 关于逻辑运算符的短路特性。
1) 逻辑与:如果第一个操作数为false,那么结果肯定就是false,所以在这种情况下,
将不会执行逻辑与后面的运算了,即发生了短路。
2) 逻辑或:如果第一个操作数为true,那么结果肯定就是true,所在在这种情况下,
将不会执行逻辑或后面的运算了,即发生了短路。
代码示例:第一个为true,所以没有短路
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
boolean f = (a < b)&&((e = c) < d);
System.out.println(f);
System.out.println(e);
结果:true 3
代码示例:第一个为false,所以短路了
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
boolean f = (a < b)&&((e = c) < d);
System.out.println(f);
System.out.println(e);
结果:false 5
分析:(e = c)设置c 赋值给 e ,然后将e 打印出来,是为了观察到该逻辑运算符后面的((e= c) < d)是否被执行,
如果执行了,则 e = c = 3 ;否则说明发生了短路现象(即((e= c) < d)未执行);
7. 关于变量的自增与自减运算。
1) 关于int b = a++,作用是将a的值先赋给b,然后再让a自增1.
2) 关于int b= ++a,作用是将a的值先自增1,然后将自增后的结果赋给b。
注:上述中a都会自增1,不同的是赋值给b的过程,所以for循环中的a++和++a一样
8. 条件运算符(三元表达式),其形式为:
type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4;
当a为ture时,结果为b;
当a为false时,结果为c;