逻辑运算符的“短路”举例


逻辑运算符的“短路”


错误代码:
逻辑运算符的“短路”举例_第1张图片
逻辑运算符的“短路”举例_第2张图片
错误分析:如果s1是s2的子集或者s2是s1的子集,那么index就会自增到s1.length()或者s2.length()。这样在最后一次判断循环条件时便会出现越界访问现象。

正确代码:
逻辑运算符的“短路”举例_第3张图片
这段代码仅仅调换了由&&连接的三个条件的顺序,其原理是利用逻辑运算符的“短路”,即便index自增到s1.length()或s2.length(),一旦前边两个条件运算结果为假,就不再进行s1.charAt(index) == s2.charAt(index),由此避免了越界访问。

你可能感兴趣的:(leetcode,java,算法)