【问题标题】:What is the 'else' of a one line if statement correspondece?单行 if 语句对应的“else”是什么?
【发布时间】:2013-09-23 00:27:38
【问题描述】:

在 javascript 中,我对嵌套的 if 的 elses 感到困惑

当 JS 编译器/引擎需要解释此代码时

if (cond1)
if (cond2)
statement1
else
statement2

(不是故意缩进的)

会这样解释吗?

if (cond1) {
  if (cond2) {
    statement1
  }
}
else {
  statement2
}

还是这样?

if (cond1) {
  if (cond2) {
    statement1
  }
  else {
    statement2
  }
}

问题是:'else' 对应于第一个还是第二个'if'?

我也想知道这个解释问题是否有一些名称(如“运算符优先级”)(我确定它有)。我在互联网上找不到这个问题,因为我不知道如何通过它的名称搜索它。

这可能有点明显,但我要说:我问javascript是因为我现在正在使用它,但这个问题几乎可以是任何程序语言。

【问题讨论】:

  • 我的建议是写出来,alert(line_number) 只是为了验证,但我相信这将是第二个 if 语句
  • 这是一本教科书示例,说明为什么要始终使用大括号。提供大括号时绝不会有任何歧义,也绝不会有任何机会让维护您的代码的人意外地通过简单的编辑将其搞砸,因为他们没有意识到您的意图。

标签: javascript algorithm if-statement procedural-programming


【解决方案1】:

它应该是JS中的第二个。一旦同事调试了你的代码,它就会在 python 中抛出一个错误,并让你在 php 中大打出手。

【讨论】:

  • 仅在 PHP 中?我想每种语言都希望人们不要这么混淆其他人。
  • 没错,但你不认识我的同事。
猜你喜欢
  • 2017-09-11
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-16
  • 2019-04-09
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多