簡體   English   中英

JAVA:替代break語句?

[英]JAVA: Substitute for a break statement?

由於某些荒謬的原因,我的教授禁止我們在程序中使用break語句來終止循環。 我正在制作一個“連接四人”程序,並使用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循環怎么辦?

您可能會作弊:

i = -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 。有時候,這全都與玩游戲有關。我認為代碼段已經顯示了一些人們認為比break更糟糕的做法。例如,奇怪變量名稱,全局變量和2D字符串數組...)

轉換為while

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM