在页眉和页脚中使用条件进行while循环

时间:2014-09-03 18:54:07

标签: java

我的编译器吃了这个:

    do while (condition1) {
        // do something
    } while (condition2);

Oracle没有明确表示它可能http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html,但我的编译器接受这两个条件。这实际上是否有用,或者我有什么理由不这样做?

构造非常有意义,因为我们通常有两个条件,例如计数器和对象,在进入循环时,只需要立即检查其中一个条件。

我知道我可以使用if语句并中断; - 我只是想知道是否有理由不使用这两个标准。

4 个答案:

答案 0 :(得分:4)

  

Oracle没有明确表示可能

事实上,这是不可能的。

你的例子不是循环的双重标准。

它被翻译成:

do {
    while (condition1) {
        // do something
    } 
} while (condition2);

答案 1 :(得分:4)

你有什么

do {
  while (condition1) {
    // do something
  }
} while (condition2);

只要do something成立,condition1就会重复执行,然后在condition2成立时再次启动整个循环。

答案 2 :(得分:0)

为什么不这样做:

if(condition1) {
  do {
    // your code here
  } while (condition1 && condition2)
}

不是你的双重条件的忠实粉丝,因为它令人困惑

答案 3 :(得分:0)

这个代码构造实际上是有效的,Java编译器运行它没有错误或异常。

它背后的逻辑是,这些循环是嵌套的。 while循环嵌套在do-while中。

这里java编译器将do-while体内的while循环视为单行语句,可以在没有括在大括号之间的情况下编写。

相当于

    for(int i=0; i<10; i++)
            for(int j = 0 ; j<10; j++){
                     //statements;
            }

     while(condition)
            for(int j = 0 ; j<10; j++){
                     //statements;
            }
在给定的代码构造中,对括号的主体构成while循环的主体,而不是外部do-while循环的主体,如在for循环构造中那对括号使得内部的主体为循环。

     do while (condition1) {
              // do something
              } while (condition2);

这是有效的代码构造。