Java 带有continue或break的if语句

Java 带有continue或break的if语句,java,if-statement,break,continue,Java,If Statement,Break,Continue,我正在做JavaOCA测试的模拟。在我学习《OCA-学习指南》(Sybex)的过程中,第二章有以下内容(表2.5,第91页): if-allows中断语句:否 if-allows continue语句:否 但在Sybex(在线书籍OCA)进行的Java OCA测试模拟过程中,有一个问题: int x= 5; while (x>=0) { int y = 3; while (y>0) { if (x<2)

我正在做JavaOCA测试的模拟。在我学习《OCA-学习指南》(Sybex)的过程中,第二章有以下内容(表2.5,第91页):

if-allows中断语句:否

if-allows continue语句:否

但在Sybex(在线书籍OCA)进行的Java OCA测试模拟过程中,有一个问题:

int  x= 5;
    while (x>=0) {
        int y = 3;
        while (y>0) {
            if (x<2)
                continue;
            x--; y--;
            System.out.println(x*y + " ");
        }
    }
intx=5;
而(x>=0){
int y=3;
而(y>0){

if(x我认为continue在这里是在外部while循环之后,而不是立即if,因为continue在while循环内部是允许的,它可以工作的

public static void main(String[] args) {
   int  x= 5;
 //while (x>=0) {
   int y = 3;
 //while (y>0) {
     if (x<2)
     continue;
     x--; y--;
      System.out.println(x*y + " ");
       }
      }
    // }
  // }

Error:(10, 21) java: continue outside of loop
publicstaticvoidmain(字符串[]args){
int x=5;
//而(x>=0){
int y=3;
//而(y>0){

if(x通常breakcontinue在if语句中是允许的,但是您不应该经常使用它们,因为这是不好的编码方式

*单元=单元测试框架

例如,一个原因是:如果您试图用单元测试您的软件(如果您还不知道单元,请不要担心:D),那么理解代码的功能和测试代码要比正常情况困难得多


祝你好运,玩得开心希望我能帮助你

我想你需要了解的是,在你的代码中,
if
语句在while循环中(在另一个while循环中)这就是为什么在这种情况下可以使用
continue
。循环外的
if
语句不允许使用
continue
。但是在for循环、while循环或do while循环内,可以在
if
语句内使用continue

因此,您提供的代码起作用,输出为:

8 
3 
0 
2 
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    continue cannot be used outside of a loop
但是我把你的代码注释掉了两个while循环,现在代码无法编译:

        int  x= 5;
//      while (x>=0) {
            int y = 3;
//          while (y>0) {
                if (x<2)
                    continue; //<-- COMPILE ERROR: continue cannot be used outside of a loop
                x--; y--;
                System.out.println(x*y + " ");
//          }
//      }

我写了一篇非常详细的文章,介绍了Java中的、和所有不同类型的循环。

这本书和测试模拟器都是正确的。
break
continue
关键字不允许出现在
if
中。
continue
你在
if
中看到的
是完全有效的,因为它出现在continue中外部
while
的ext,这很好。为了将其全部打包,当您启动
while
for
块时,使用
break
continue
在该块内的任何地方都是正确的,即使它恰好位于
if
块内。

为什么不编译?不清楚这是什么意思“如果-允许中断语句:否"是的,你可以有条件地中断/继续。你一定是误解了这本书的意思,或者这本书很糟糕。学习指南可能意味着
if
本身不能包含
continue
break
。它需要一个
for/while/switch
。在这种情况下
continue
属于e包含
while
-循环,而不是
if
。非常感谢!我尝试了一个没有while循环的if语句,但它没有编译。如果这个扫描确实来自书本,同意@Carcigenicate throw into trashI没有理解你,为什么它的方式很糟糕?通过点击编辑器而不是阅读/理解好的文字库来判断但点击编辑器可以让我更好地理解,因为我可以调试程序,并以比仅仅阅读某人的分析更好的方式理解它,这并不意味着我不阅读/理解好的文献。