JAVA:代替休息声明?

时间:2014-04-19 20:37:30

标签: java loops for-loop break

出于某种荒谬的原因,我的教授禁止我们在程序中使用break语句来终止循环。我正在制作一个Connect Four程序,我正在使用for循环来模拟玩家丢弃一个检查器。如果我的循环看起来像这样:

for(int i = LOWEST_ROW_INDEX; i >= 0; i--)
    {
        if(gb[i][rChoice].equals(". "))
        {
            gb[i][rChoice] = "r ";
            break; //CANNOT USE BREAK
        }
    }

我可以做什么而不是break语句来终止for for循环?

3 个答案:

答案 0 :(得分:3)

你可以作弊:

i = -1;

答案 1 :(得分:1)

这并不太荒谬。一些纯粹主义者认为break是邪恶的 - 类似于“多个return陈述”,但不如“break带标签”或goto。具有嵌套循环和一些break语句的程序可能相当混乱。

这里的另一个可能的解决方案是这样的:

private int findInsertionIndex()
{
    for(int i = LOWEST_ROW_INDEX; i >= 0; i--)
    {
        if(gb[i][rChoice].equals(". "))
        {
            return i;
        }
    }
    return -1;
}

// Use
int insertionIndex = findInsertionIndex();
if (insertionIndex != -1)
{
    gb[insertionIndex][rChoice] = "r ";
}

(是的,我知道我用break交换了一个带有“多次返回”的方法。有时它只是玩游戏。我认为代码片段已经显示了一些可以认为比a break。例如,奇数变量名,全局变量和字符串的2D数组......)

答案 2 :(得分:0)

将其转换为while

int i = LOWEST_ROW_INDEX;
while(!gb[i][rChoice].equals(". ") && i >=0 ){
  i--;
}
if (i >= 0){
  gb[i][rChoice] = "r ";
}