Java 在页眉和页脚中使用条件执行while循环
我的编译器吃这个:Java 在页眉和页脚中使用条件执行while循环,java,Java,我的编译器吃这个: do while (condition1) { // do something } while (condition2); Oracle没有明确表示这是可能的,但我的编译器接受这两个条件。这真的有效吗?或者我为什么不能这么做 这个构造非常合理,因为我们通常有两个条件,比如计数器和对象,在进入循环时只需要立即检查其中一个条件 我知道我可以使用if语句和break;-我只是想知道我是否有理由不使用这两个标准。为什么不: if(condition1
do while (condition1) {
// do something
} while (condition2);
Oracle没有明确表示这是可能的,但我的编译器接受这两个条件。这真的有效吗?或者我为什么不能这么做
这个构造非常合理,因为我们通常有两个条件,比如计数器和对象,在进入循环时只需要立即检查其中一个条件
我知道我可以使用if语句和break;-我只是想知道我是否有理由不使用这两个标准。为什么不:
if(condition1) {
do {
// your code here
} while (condition1 && condition2)
}
我不太喜欢你的双重条件,因为它让人困惑
甲骨文没有明确表示这是可能的
事实上,这是不可能的
您的示例不是双重标准while循环
翻译成这样:
do {
while (condition1) {
// do something
}
} while (condition2);
你有的是
do {
while (condition1) {
// do something
}
} while (condition2);
因此,只要
condition1
保持不变,dosomething
就会重复执行,然后在condition2
保持不变的情况下再次启动整个循环。这个代码构造实际上是有效的,Java编译器运行它时没有错误或异常
其背后的逻辑是,这些循环是嵌套的。while循环嵌套在do while中
在这里,java编译器将do while主体中的while循环作为单行语句,可以编写该语句,而无需在一对大括号之间括起来
相当于
for(int i=0; i<10; i++)
for(int j = 0 ; j<10; j++){
//statements;
}
这是有效的代码构造 这不是双重条件
while
,而是两个分开的while
循环。@Aeshang语法非常好
while(condition)
for(int j = 0 ; j<10; j++){
//statements;
}
do while (condition1) {
// do something
} while (condition2);