如何 return 可以在方法中中断或继续?
How to return a break or Continue in a method is it possible?
当我使用 while 循环时,我需要使用许多完全相同的 if 块所以我打算将它放在一个方法中并在我想要的地方重用它!但我有一个问题,我想 return 在我的 if 块的某些区域继续或中断,所以我可以 return 中断或继续吗?
while (true){
move(a);
move(b);
}
public *** move(Parameter parameter){
if (statement){
return continue;
}
else{
return break;
}
}
您可以 return 一个布尔值:
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
时,您的意思是执行下一条语句;不是 return 到循环的开始?
但很遗憾,您无法在 Java 中实现这一目标。在 Java 中,您只能 return 一个 值 ,而不是 "instruction"。 (在 C 和 C++ 中,您 可以 使用宏来设计它,尽管这会弄乱您的调试器。)
但是,如果您将 move
改编为 return 一个 boolean
,也就是说 true
如果您想 break
和 false
否则,那么在呼叫站点你可以写
while (true){
if(move(a)){
break;
} else if (move(b)){
break;
}
}
或与
while (true){
if (move(a) || move(b)){
break;
}
}
我正在利用运算符 ||
.
的 短路 特性
最后,如果您想将此代码提交给混淆竞赛,请使用简单美观但仍然易于理解的代码
while (!(move(a) || move(b)));
如果你想保证你赢得比赛,那么交换 move
回合的 return 规则并使用完全不雅的
while (move(a) && move(b))
;
使用返回的布尔值使其超级简单
public boolean move(Parameter parameter){
return statement;
}
while (true){
if(!move(a)) break;
if(!move(b)) break;
}
当我使用 while 循环时,我需要使用许多完全相同的 if 块所以我打算将它放在一个方法中并在我想要的地方重用它!但我有一个问题,我想 return 在我的 if 块的某些区域继续或中断,所以我可以 return 中断或继续吗?
while (true){
move(a);
move(b);
}
public *** move(Parameter parameter){
if (statement){
return continue;
}
else{
return break;
}
}
您可以 return 一个布尔值:
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
时,您的意思是执行下一条语句;不是 return 到循环的开始?
但很遗憾,您无法在 Java 中实现这一目标。在 Java 中,您只能 return 一个 值 ,而不是 "instruction"。 (在 C 和 C++ 中,您 可以 使用宏来设计它,尽管这会弄乱您的调试器。)
但是,如果您将 move
改编为 return 一个 boolean
,也就是说 true
如果您想 break
和 false
否则,那么在呼叫站点你可以写
while (true){
if(move(a)){
break;
} else if (move(b)){
break;
}
}
或与
while (true){
if (move(a) || move(b)){
break;
}
}
我正在利用运算符 ||
.
最后,如果您想将此代码提交给混淆竞赛,请使用简单美观但仍然易于理解的代码
while (!(move(a) || move(b)));
如果你想保证你赢得比赛,那么交换 move
回合的 return 规则并使用完全不雅的
while (move(a) && move(b))
;
使用返回的布尔值使其超级简单
public boolean move(Parameter parameter){
return statement;
}
while (true){
if(!move(a)) break;
if(!move(b)) break;
}