逻辑运算符的陷阱

逻辑运算符

逻辑与&&:两个都为真时,才为真

int a = 4, b = 6;

int result = a < b && a++;

由于非0即为真,因此result结果为真,也就是1

逻辑或||:有一个为真即为真, 全假即为假

int result = a < b || a > 100;

result结果也为1.因为a < b为真,所以结果为真

逻辑!:对结果取反

int result = !(a < b);

result 结果为:0(假), 因为a < b为真,取反后为假

经过上面的知识了解了逻辑运算符,但是在实际运用过程中,逻辑运算符有时并不会像你想的那样.

1.逻辑与的短路现象

    result = a > b && a < 10;

result为假,但是程序运行时只判断了第一个,a > b 是假,直接结束,返回结果.并没有执行 a < 10

2.逻辑或的短路现象

result = a < b && a >10;

result为真,但程序也是只判断了第一个表达式a < b,并没有判断a > 10这个表达式

在实际应用中,写判定条件时,要注意发生短路现象后,是否会影响代码的正确性.

你可能感兴趣的:(逻辑运算符的陷阱)