为什么这个java代码没有返回输出?

时间:2014-04-21 17:52:46

标签: java

这是关于测验的问题。该问题询问在运行此代码时给出的输出。我不明白为什么没有输出。谁能解释一下?我对if / else的理解是,如果if语句失败,则else语句运行。为什么else语句没有运行?

代码:

int age = 10;
char registered = 'n';

if(age >= 18) {
    if(registered == 'y') {
    System.out.println("You can vote!");
}
else {
    System.out.println("You're not old enough");}
}

3 个答案:

答案 0 :(得分:11)

因为这是实际代码(正确缩进):

if (age >= 18) {
    if (registered == 'y') {
        System.out.println("You can vote!");
    }
    else {
        System.out.println("You're not old enough");
    }
}

age小于18,因此最外层的if - 语句中没有任何内容被执行。

(我认为这是一个可怕的测验问题,说实话。它只不过是用括号括起来的技巧 - 它并不能真正测试你对Java的了解。)

答案 1 :(得分:0)

正确缩进代码,您会发现age < 18没有任何反应。

答案 2 :(得分:0)

变量age的值为10,然后它不满足第一个if条件if(age> = 18),并且所有其余代码都在此条件的true分支内。