我是编程新手,我的问题让我的问题出错了。我回答了#34;再见"。正确答案是#34;欢迎"。我很困惑,为什么它跳过else语句,当else不在任何一个if语句中时。我特别认为,否则意味着if语句是错误的。考虑这个问题的正确方法是什么?
将向用户显示什么?
var x = 1, y = 7;
var message = "Welcome";
if (x < 2) {
if (y > 10) {
message = "Hello";
}
}
else {
message = "Goodbye";
}
window.alert(message);
答案 0 :(得分:3)
为了便于说明,您可以将程序绘制为图表,这样您就可以只打开并永不启动。然后应该清楚明白为什么答案是&#34;欢迎&#34;。
x = 1
y = 7
message = "Welcome"
|
|
( x < 2 )
/ \
/ \
true false
/ \
/ \
( y > 10 ) message = "Goodbye"
/ \
/ \
true false
/ \
/ \
message = "Hello" (nothing)
------------------------v--------------------
|
|
alert(message)
答案 1 :(得分:1)
由于x
小于2,因此忽略else
语句。由于对y
变量的检查包含在外if
块中,因此对外if
没有影响。
var x = 1, y = 7;
var message = "Welcome";
if (x < 2) { /* True (x is less than 2) */
if (y > 10) {
message = "Hello"; /* False (y isn't greater than 10) */
}
}
else { /* False (x isn't greater than or equal to 2) */
message = "Goodbye";
}
如果外部else
结合了两个条件,将输入if
块,因为这将评估为false
:
if (x < 2 && y > 10)
答案 2 :(得分:0)
只有当你的第一个if语句为false时才会执行你的else语句,如果你声明为false,则不会执行你的else语句。
if (x < 2 && y > 10) {
message = "Hello";
}
else {
message = "Goodbye";
}
这将有正确的行为。