Java 如何在方法中返回中断或继续是可能的?
当我使用while循环时,我需要使用许多完全相同的if块,所以我计划将它放在一个方法中,并在我想要的地方重用它!但我有一个问题,我想返回继续或中断在我的if块的某些区域,所以我可以返回中断或继续吗Java 如何在方法中返回中断或继续是可能的?,java,break,continue,Java,Break,Continue,当我使用while循环时,我需要使用许多完全相同的if块,所以我计划将它放在一个方法中,并在我想要的地方重用它!但我有一个问题,我想返回继续或中断在我的if块的某些区域,所以我可以返回中断或继续吗 while (true){ move(a); move(b); } public *** move(Parameter parameter){ if (statement){ return continue; } else{ return break; } } 您
while (true){
move(a);
move(b);
}
public *** move(Parameter parameter){
if (statement){
return continue;
}
else{
return break;
}
}
您可以返回布尔值:
while (true){
if(move(a))
{
break;
}
else
{
continue;
}
if(move(b))
{
break;
}
else
{
continue;
}
}
public boolean move(Parameter parameter){
if (statement){
return false;
}
else{
return true;
}
}
您可以返回布尔值:
while (true){
if(move(a))
{
break;
}
else
{
continue;
}
if(move(b))
{
break;
}
else
{
continue;
}
}
public boolean move(Parameter parameter){
if (statement){
return false;
}
else{
return true;
}
}
如果我们真的实现了你想要的东西,那么我将不考虑这个事实
move(b)代码>将无法访问。大概当你说continue
时,你的意思是执行下一条语句;不返回到循环的开始
但遗憾的是,您无法在Java中实现这一点。在Java中,只能返回值,不能返回“指令”。(在C和C++中,你可以使用宏来实现这一点,虽然这会使调试器混乱)。
但是,如果您调整move
以返回boolean
,即true
,如果您想中断或false
,则可以在调用站点编写
while (true){
if(move(a)){
break;
} else if (move(b)){
break;
}
}
或是以优异成绩获胜
while (true){
if (move(a) || move(b)){
break;
}
}
在这里,我利用了操作符的短路特性|
最后,如果您想将此代码提交到一个模糊处理竞赛中,那么请使用简单美观但仍然易于理解的
while(!(移动(a)|移动(b))代码>
如果你想保证你在上述比赛中获胜,那么就交换移动回合的返回规则,使用完全不雅的规则
while(移动(a)和移动(b))
如果我们真的实现了你想要的,那么我将把这个事实抛在一边move(b)代码>将无法访问。大概当你说continue
时,你的意思是执行下一条语句;不返回到循环的开始
但遗憾的是,您无法在Java中实现这一点。在Java中,只能返回值,不能返回“指令”。(在C和C++中,你可以使用宏来实现这一点,虽然这会使调试器混乱)。
但是,如果您调整move
以返回boolean
,即true
,如果您想中断或false
,则可以在调用站点编写
while (true){
if(move(a)){
break;
} else if (move(b)){
break;
}
}
或是以优异成绩获胜
while (true){
if (move(a) || move(b)){
break;
}
}
在这里,我利用了操作符的短路特性|
最后,如果您想将此代码提交到一个模糊处理竞赛中,那么请使用简单美观但仍然易于理解的
while(!(移动(a)|移动(b))代码>
如果你想保证你在上述比赛中获胜,那么就交换移动回合的返回规则,使用完全不雅的规则
while(移动(a)和移动(b))
使用返回的布尔值使其变得超级简单
public boolean move(Parameter parameter){
return statement;
}
while (true){
if(!move(a)) break;
if(!move(b)) break;
}
使用返回的布尔值使其变得超级简单
public boolean move(Parameter parameter){
return statement;
}
while (true){
if(!move(a)) break;
if(!move(b)) break;
}
@yper yes有……如果move(a)
返回false
他想跳过move(b)
@yper这可能不是他的全部代码……他可能只是在展示一个示例,所以他可能想跳过move(b)
之后的代码。@khelwood是的……但这是他的问题。也许他有更多我们看不到的代码。这是一个不同的主题,可能是一个不同的问题…@khelwood这回答了他的问题。现在,如果他还有其他问题,他也可以在这里发布。谢谢!我对这些条件感到不安,但我忘了我们可以使用布尔值进行任意数量的语句@yper yes有……如果move(a)
返回false
他想跳过move(b)
@yper这可能不是他的全部代码……他可能只是在展示一个示例,所以他可能想跳过move(b)
之后的代码。@khelwood是的……但这是他的问题。也许他有更多我们看不到的代码。这是一个不同的主题,可能是一个不同的问题…@khelwood这回答了他的问题。现在,如果他还有其他问题,他也可以在这里发布。谢谢!我对这些条件感到不安,但我忘了我们可以使用布尔值进行任意数量的语句!那不太一样。看我的答案;-)那不太一样。看我的答案;-)|
的用法实际上并没有那么愚蠢+听到芭丝谢芭的声音了吗?一点也不愚蠢;)你真的认为这很悲伤吗?有一件事我要指出。他的示例说明了与return语句等价的东西?中断:继续
,因此无法访问移动(b)(编译错误)。(我明白了吗?)是的,你明白了。我试图在回答的顶部否认这一点。|
的用法实际上并没有那么愚蠢+听到芭丝谢芭的声音了吗?一点也不愚蠢;)你真的认为这很悲伤吗?有一件事我要指出。他的示例说明了与return语句等价的东西?中断:继续
,因此无法访问移动(b)(编译错误)。(我明白了吗?)是的,你明白了。我试图在答案的顶部否认这一点。我总是发现这些指令使用了糟糕的设计,因此如果这些指令不直接在循环中,那么如果我没有弄错,move(b)将永远不会执行,因为contìnue
停止此语句块并重新检查循环值。@AxelH:你是正确的<代码>移动(b)
如果我们逐字解释continue
将无法访问。我总是发现那些使用了糟糕的设计,因此如果这些指令不直接在循环中,那又是什么消息呢?如果我没有弄错,移动(b)将永远不会执行,因为contìnue
停止此语句块并重新检查循环值。@AxelH:您是正确的<代码>移动(b)
如果我们逐字解释继续
将无法访问。