嵌套if语句中的else语句。这段代码如何知道要执行哪个else语句?

时间:2016-04-12 09:54:16

标签: javascript if-statement nested-if

我得到嵌套的if循环(与使用&&运算符相同),但是这里的代码如何知道在没有条件的情况下执行哪些条件以及只返回else语句?其中一个是在嵌套的if语句中。我可以说这显然是为什么它按照它的方式工作,我只是不知道如何。另外,我知道如何以几种更可读的方式编写这个来测试多个条件。请在此处解释此代码的用途。如何输出“你太老了”或“你太年轻了?”

{{1}}

4 个答案:

答案 0 :(得分:0)

首先,让缩进代码。

var age = prompt("Please enter Your age here :");
var min_age = 18;
var max_age = 40;

if (age >= min_age)
{
    if (age <= max_age)
    {
        console.log("You meet the requirements for this competition");
    }
    else
    {
        console.log("You are too old");
    }
}
else
{
    console.log("You are too young");
}

开始..

var age = prompt("Please enter Your age here :");

我们假设您在提示框中输入 21 ,因此age=21

我们初始化

var min_age = 18;
var max_age = 40;

现在让我们看看第一个if条件。

 if (age >= min_age)

如果替换值,则转换为

if (21 >= 18)

这是真的,因此我们进入if块而不是else。 下一行是。

 if (age <= max_age)

这转换为

 if (21 <= 40)

考虑到这一点也是如此,我们打印您符合本次比赛的要求

最重要的一点是,缩进你的代码,其余的变得非常简单。

答案 1 :(得分:0)

括号{}设置了限制。

尝试以伪代码思考,超越角色并思考正在发生的事情。

按顺序阅读:

If you are old enough
  If your are not too old 
    'You meet the requirements for this competition'
  OTHERWISE
    'You are too old'
  END
OTHERWISE
  'You are too young'
END

请注意缩进有助于查看条件的限制。每个缩进的部分都可以分开。

答案 2 :(得分:0)

if-then-else模糊性已知很长一段时间了。所有语言都通过定义else将匹配第一个感知if来解决它。所以:

if (a)
    if (b)
        x = 1;
else
    x = 2;

解析为:

if (a) {
    if (b) {
        x = 1;
    }
    else {
        x = 2;
    }
}
Nisar的回复

编辑

if语句定义为:

if (<condition>) <statement> [else <statement>]

这意味着上面的<statement>也可能是if声明。所以,例如:

if (<condition>) if (<condition>) [else <statement>] [else <statement>]

由于每个else部分都是可选的,因此编译器无法知道它何时看到else部分属于if部分。要解决语言定义else始终与前一个if匹配。

答案 3 :(得分:0)

只有3个选项

  • 太年轻了
  • 正确的年龄
  • 太旧了

第一次检查 - 这个人够老了吗?

if(age>=min_age)

第二次检查 - 这个人太老了吗?

if(age<=max_age)

如果声明为FALSE,则此后剩下的唯一可能选项:

  • 太旧了