【问题标题】:Is "else if" one whole or two separate keywords in Java?Java中的“else if”是一个完整的关键字还是两个单独的关键字?
【发布时间】:2009-04-19 22:18:15
【问题描述】:

我碰巧阅读了SCJP 认证的练习材料,我刚刚翻阅了一章流控制等,他们给人的印象是“else if”本身就是一个关键字。我一直认为它只是一个普通的else,只包含一个if 块,省略了大括号。

那么,它是什么?

编辑:我想强调的是,这个问题更多地属于“激起我的兴趣”,而不是“严肃的事情”。

【问题讨论】:

标签: java


【解决方案1】:

是的,它们是两个独立的关键字——Java language specification 没有指定 else if 关键字。实际上,正如其他发帖者所说,if 声明包含在 else 声明中。

编辑:许多培训/教育材料似乎暗示 else if 实际上是一个关键字(实际上,它通常被视为关键字),但我倾向于认为这更多是为了清晰/简单,结果牺牲了准确性。

【讨论】:

    【解决方案2】:

    这将是两个单独的关键字,由两个单词之间的空格表示。

    【讨论】:

      【解决方案3】:

      它实际上是说

      else {
          if { ... }
      }
      

      【讨论】:

        【解决方案4】:

        这是两个关键字。

        else 后面可以跟一个块或单个语句。

        else if的情况下。该语句是另一个 if 语句。

        更新

        值得一提的是,else if 是深度嵌套 if 语句的常见样式选择,并且使这种情况比嵌套更具可读性。除非我需要 switch 语句可能实现的失败行为,否则我会改用 else if

        【讨论】:

          【解决方案5】:

          我相信两个单独的关键字。但我很肯定,如果没有 if,你就不能拥有 else

          Java Lexical Structure

          【讨论】:

          • 你是认真地说你不能有 else 语句吗? :P
          【解决方案6】:

          虽然某些语言确实将“elsif”、“elseif”或“else if”作为单独的语句(有点像“case”语句),但 Java 不是其中之一。

          【讨论】:

            【解决方案7】:

            我不是 Java 专家,但在 C 中它肯定被定义为两个不同的关键字,Java 从 C 的这部分语法中大量窃取。

            无论如何,除了考试中的愚蠢问题之外,它永远不会在实践中产生影响。无论哪种方式,效果都是一样的。

            【讨论】:

            • 是的,我知道实际毫无意义。出于某种奇怪的原因,我想知道这些不相关的数据。
            【解决方案8】:

            如果您使用调试器打开程序集,您会发现它是一条“if”语句。

            【讨论】:

            • 不回答问题。也无意义。汇编不会告诉你源代码中使用了哪些关键字,
            猜你喜欢
            • 2014-08-13
            • 1970-01-01
            • 1970-01-01
            • 2021-01-02
            • 1970-01-01
            • 1970-01-01
            • 2013-02-22
            • 2021-06-11
            • 2019-10-18
            相关资源
            最近更新 更多