【发布时间】:2020-08-19 02:11:41
【问题描述】:
public class Main {
public static void main(String[] args) {
int x = 1;
if (x < 10)
if (x == 0)
System.out.println("Zero");
else if (x == 1)
System.out.println("One");
else
System.out.println("Other but smaller than 10");
else
System.out.println("Greater than 10");
}
}
我刚刚尝试过这个,它的工作原理与我用花括号包围内部条件完全相同。
我知道可以不使用花括号进行单行语句,但为什么在这种情况下会起作用?
谢谢,如果这是一个明显的问题,我很抱歉。
【问题讨论】:
-
您的问题在这里:“单行语句”......正确的是“单语句”,与使用的行无关。带有所有分支的 if/else 块是一个语句。
-
内部的东西真的只有一个块。我不明白为什么它不应该工作
-
您的理解是正确的,您的想法中唯一遗漏的是每个块下有多少条语句?。实际上,
if-else构造的每个块下都有 one 语句。请注意,您的父 if 只有一个嵌套的 if 语句,而所有其余的else或else if块都具有类似的 one声明每个。所以,是的,如果if-else块没有花括号,它们最多可以包含一个语句,在你的情况下,每个块都包含一个 (direct 连接,没有孙子) 声明。
标签: java if-statement curly-braces