为什么如下Java代码运行后无输出,无法打印Yes或No?
问题原因分析
- 首先判断外层
if的条件结果:你定义的y=0,因此y < 0的结果为false,&&逻辑与运算符只要有一个条件为false,整体运算结果就是false,所以外层if (x > 0 && y < 0)的条件不成立,其大括号包裹的所有代码都不会执行。 - 打印
Yes和No的逻辑完全写在了外层if的大括号内部,外层条件不满足时,内部的分支判断根本不会运行,自然不会有任何输出。
修正示例
如果你希望无论外层if是否成立,都执行Yes/No的输出判断,可以将输出逻辑移到外层if的大括号之外,参考代码如下:
public class Main { public static void main(String[] args) { int x=8, y=0, z=1; //random integers if (x > 0 && y < 0) { // 此处保留外层if需要执行的其他逻辑 } // 输出逻辑移到外层if之外 if (x==8) System.out.print("Yes"); else if (z > 0) System.out.print("No"); } }
内容的提问来源于stack exchange,提问作者Mohammed Othman
相关产品推荐
相关产品推荐

