我注意到java(因此可能是C)对此没有任何问题:
while(condition1) {
//do somethin'
} while(condition2);
这是否与:
相同while(condition1 && condition2) {
//do somethin'
}
答案 0 :(得分:14)
不,你有两个循环。
while(condition1) {
// do something
}
while(condition2); // second loop which does nothing.
第二个循环与
相同while(condition2) { }
编辑:我的建议是定期在IDE中使用自动格式化程序。否则,您可以创建格式,表明代码执行的操作不是。
示例1
if (condition)
statement1;
statement2;
statement3;
在这个例子中,前两个语句似乎是if条件的一部分,但只有第一个是。
示例2
http://www.google.com/
statement;
看起来不像合法的Java,但不是因为格式化建议的原因;)
答案 1 :(得分:4)
不,他们是不同的。
第一个while(condition1)
将首先运行。
然后是while(condition2)
,除了单个;
之外什么都没有,这意味着它只是一些空话。
请记住,在if
,for
,while
这样的控制块中,如果您不使用{}
括号,那么只有第一个立即声明后它将被视为其中的一部分。
示例:
if (condition)
System.out.println("hello"); // prints only if condition is true.
System.out.println("no"); // not bound to the 'if'. Prints regardless.
while (condition)
; // do nothing!
System.out.println("something"); // not bound to the while
中提到了空的while循环
7.6
while
语句
while
语句应具有以下形式:
while (condition) {
statements;
}
空的while语句应具有以下形式:
while (condition);
答案 2 :(得分:-1)
没有构造是java,如第一种形式所示。你可能已经看过了
do {
} while (cond)
编辑:您误读了第一张表格。在}
之后应该有一个换行符。这也使我感到困惑。