如何在方法中返回中断或继续是可能的?

时间:2016-11-04 13:32:46

标签: java break continue

当我使用while循环时,我需要使用很多if if完全相同的块所以我计划将它放在一个方法中并在我想要的地方重用它!但我有一个问题,我想要返回继续或在我的if块的某些区域中断,所以我可以返回Break或继续吗?

while (true){
move(a);
move(b);
}

public *** move(Parameter parameter){
  if (statement){
    return continue;
  }
  else{
    return break;
  }
} 

3 个答案:

答案 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,如果您想要truebreak另有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;
}