【发布时间】:2009-04-19 22:18:15
【问题描述】:
我碰巧阅读了SCJP 认证的练习材料,我刚刚翻阅了一章流控制等,他们给人的印象是“else if”本身就是一个关键字。我一直认为它只是一个普通的else,只包含一个if 块,省略了大括号。
那么,它是什么?
编辑:我想强调的是,这个问题更多地属于“激起我的兴趣”,而不是“严肃的事情”。
【问题讨论】:
标签: java
我碰巧阅读了SCJP 认证的练习材料,我刚刚翻阅了一章流控制等,他们给人的印象是“else if”本身就是一个关键字。我一直认为它只是一个普通的else,只包含一个if 块,省略了大括号。
那么,它是什么?
编辑:我想强调的是,这个问题更多地属于“激起我的兴趣”,而不是“严肃的事情”。
【问题讨论】:
标签: java
是的,它们是两个独立的关键字——Java language specification 没有指定 else if 关键字。实际上,正如其他发帖者所说,if 声明包含在 else 声明中。
编辑:许多培训/教育材料似乎暗示 else if 实际上是一个关键字(实际上,它通常被视为关键字),但我倾向于认为这更多是为了清晰/简单,结果牺牲了准确性。
【讨论】:
这将是两个单独的关键字,由两个单词之间的空格表示。
【讨论】:
它实际上是说
else {
if { ... }
}
【讨论】:
这是两个关键字。
else 后面可以跟一个块或单个语句。
在else if的情况下。该语句是另一个 if 语句。
更新
值得一提的是,else if 是深度嵌套 if 语句的常见样式选择,并且使这种情况比嵌套更具可读性。除非我需要 switch 语句可能实现的失败行为,否则我会改用 else if。
【讨论】:
我相信两个单独的关键字。但我很肯定,如果没有 if,你就不能拥有 else。
【讨论】:
虽然某些语言确实将“elsif”、“elseif”或“else if”作为单独的语句(有点像“case”语句),但 Java 不是其中之一。
【讨论】:
我不是 Java 专家,但在 C 中它肯定被定义为两个不同的关键字,Java 从 C 的这部分语法中大量窃取。
无论如何,除了考试中的愚蠢问题之外,它永远不会在实践中产生影响。无论哪种方式,效果都是一样的。
【讨论】:
如果您使用调试器打开程序集,您会发现它是一条“if”语句。
【讨论】: