Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在页眉和页脚中使用条件执行while循环_Java - Fatal编程技术网

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);