什么是 逻辑与&& 和 逻辑或|| 的短路运算?有什么用?
问题一:什么是 逻辑与&& 和 逻辑或|| 的短路运算?
1、&& 和 || 属于 逻辑运算符。关于 && 和 || 的表达式的运算规则是这样的: 表达式1 || 表达式2,只要 任意 表达式为 true,则整个表达式的运算结果为 true。 表达式1 && 表达式2,只有 所有 表达式都为 true,则整个表达式的运算结果才为 true。 根据集合的补集的思想,只要任意表达式为 false,则整个表达式的运算结果为 false。 2、&& 和 || 的 短路运算,是指如果在进行前面的表达式的运算过程, 通过判断已经明确的知道整个表达式的结果,那么就不会进行后面表达式的运算判断。例如: 表达式1 || 表达式2 || 表达式3 ... || 表达式n, 如果 表达式1 的运算结果为 true,则整个表达式的结果为 true, 同时不会再对后面的 表达式2、表达式3 到 表达式n 进行运算判断。 如果 表达式1 的运算结果为 false,则根据 表达式2 的运算结果继续判断。 表达式1 && 表达式2 && 表达式3 ... && 表达式n, 如果 表达式1 的运算结果为 false,则整个表达式的结果为 false, 同时不会再对后面的 表达式2、表达式3 到 表达式n 进行运算判断。 如果 表达式1 的运算结果为 true,则根据 表达式2 的运算结果继续判断。
问题二:&& 和 || 的短路运算有什么用?
1、由于 && 和 || 的表达式存在 短路运算现象,在短路之后不会对后面的表达式进行运算, 所以含有 && 和 || 的表达式最好不要进行变量的赋值和运算操作,可以先计算好每个表达式的结果, 直接拿结果进行 && 和 || 的运算。 在代码编写的时候就要注意这一点,以防由于 && 和 || 的 短路运算 导致写出来的代码运算结果与预期的不同。 2、把能快速确定整个表达式结果 true 或 false 的表达式 放在 前面, 这样由于 短路运算 后面的表达式可能不会被运算到,节省处理器的运算时间。
逻辑与 && : 有假则假 , 同真才真
逻辑或 | | : 有真则真 , 同假才假