当我使用while循环时,我需要使用很多if if完全相同的块所以我计划将它放在一个方法中并在我想要的地方重用它!但我有一个问题,我想要返回继续或在我的if块的某些区域中断,所以我可以返回Break或继续吗?
while (true){
move(a);
move(b);
}
public *** move(Parameter parameter){
if (statement){
return continue;
}
else{
return break;
}
}
答案 0 :(得分:2)
你可以返回一个布尔值:
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;
}
}
答案 1 :(得分:2)
如果我们按字面意思实现您想要的内容,那么我将暂时放弃这个事实,然后move(b);
无法访问。大概是当你说continue
时,你的意思是执行下一个陈述;不回到循环的开始?
但遗憾的是,你无法用Java实现这一目标。在Java中,您只能返回值,而不是"指令"。 (在C和C ++中,你可以使用宏来设计它,尽管这会弄乱你的调试器。)
但是,如果您希望move
改为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
轮的回归规则并使用完全不雅
while (move(a) && move(b))
;
答案 2 :(得分:0)
使用返回的布尔值
使其变得非常简单public boolean move(Parameter parameter){
return statement;
}
while (true){
if(!move(a)) break;
if(!move(b)) break;
}