区别:
- 逻辑与& :&左右两边都判断再得出结果;可以计算boolean类型的与,也可以计算int类型数字的按位与。
- 短路与&& :如果&&的左边为false,则右边不看直接得出结果;只能计算boolean类型的与。
- 逻辑或| :|左右两边都判断再得出结果;可以计算boolean类型的或,也可以计算int类型数字的按位或。
- 短路或|| :如果||的左边为true,则右边不看直接得出结果;只能计算boolean类型的或。
例题:
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
1 | public static int Sum_Solution(int n) { |
当递归到n = 0时,&&左边为false不看右边直接得出b = false,这条语句完成,接下来return 0,相当于递归出口,这时程序开始往上返。