Java 休息;不会工作的目的是......这个结构有什么问题?

Java break; won't work is intended... What is wrong with this structure?

如果里面的 if 条件为真,我只希望 while 循环重新开始。 在我的书中,这是通过打破循环来实现的,让它重新开始。 这段代码的问题是:break 除了停止 while 循环外什么都不做。如果 if 条件为真,则不会重复任何内容。方法returns x 的值就结束了。 在此示例中,如果满足 if 条件,如何让 while 循环重复? 谢谢:)

public int example() {
for() {
    if() {
    //code
    }else{
    z=0;
        while (z==0) {
        //code
            if() {
                //code
                break;
            }else{
                z=1;
            }
        }
    }
}
return x;
}

这里休息;如果条件为真,关键字将打破整个 while 循环。由于代码在 while 循环结束后没有其他可执行的代码,因此代码 returns 'X'。 我想那不是你想要的。

  1. 您可以使用 continue 关键字而不是 break。
  2. 或者您可以考虑重构一个方法:
//code
if() {
    //code
    break;
}else{
    z=1;
}

如下所示:

public boolean condtionalRepeat(){
   //code
   if() {
       //code
       return true;
   }else{
       return false;
   }
}

代码如下所示:

public int example() {
for() {
    if() {
        //code
    }else{
        //code
        while (condtionalRepeat()) {
        //code
        }
    }
}
return x;
}

对原代码的补充说明:如果准确的话:

    while (z==0) {
    //code
        if() {
            //code
            break;
        }else{
            z=1;
        }
    }

然后折叠成

    //code
        if() {
            //code
        }else{
            z=1;
        }

循环永远不会循环。第一次通过(在原始代码中)满足 'if' 条件或不满足条件。

如果满意,我们以 'break' 结束循环。

如果不满足,我们将 z 设置为 1,然后循环评估 'while' 条件,从而终止循环。

循环只执行一次。