出于某种荒谬的原因,我的教授禁止我们在程序中使用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循环?
答案 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 ";
}