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'。
我想那不是你想要的。
- 您可以使用 continue 关键字而不是 break。
- 或者您可以考虑重构一个方法:
//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' 条件,从而终止循环。
循环只执行一次。
如果里面的 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'。 我想那不是你想要的。
- 您可以使用 continue 关键字而不是 break。
- 或者您可以考虑重构一个方法:
//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' 条件,从而终止循环。
循环只执行一次。