java - 在不使用 break 的情况下跳出嵌套的 for 循环

标签 java loops nested-loops break

我的项目终于完成了,但我唯一的问题是我的老师不接受我们代码中的“中断”。有人可以帮我解决这个问题吗,我已经研究了好几天了,如果不使用它们,我似乎无法让程序运行。中断位于我的 DropYellowDisk 和 DropRedDisk 方法中。除了那个问题,我的 connect 4 程序是完美无缺的。

    private static void DropYellowDisk(String[][] grid) {

        int number = 0;
         Scanner keyboard = new Scanner (System.in);
         System.out.println("Drop a yellow disk at column (1–7): ");
         int c = 2*keyboard.nextInt()+1;


         for (int i=6;i>=0;i--)
            {
              if (grid[i][c] == " ")
              {
                grid[i][c] = "Y";
                break;
              }}
    }

    private static void DropRedDisk(String[][] grid) {

         Scanner keyboard = new Scanner (System.in);
         System.out.print("Drop a red disk at column (1–7): ");
         int c = 2*keyboard.nextInt()+1;
         for (int i =6;i>=0;i--)
            {
              if (grid[i][c] == " ")
              {
                grid[i][c] = "R";
                break;
              }

    }}

最佳答案

my teacher does not accept "breaks"

从编程的角度来看,这简直是愚蠢(尽管我确信它具有教学意义)。

但在这种特殊情况下有一个简单的解决方法,因为您从中中断的循环都在各自方法的末尾。因此,您可以将它们替换为 return 语句。即:

private static void DropYellowDisk(String[][] grid) {

  for (int i=6;i>=0;i--)
    {
      if (grid[i][c] == " ")
      {
        grid[i][c] = "Y";
        return; //break
      }}
}

关于java - 在不使用 break 的情况下跳出嵌套的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27114661/

相关文章:

java - 负载测试 - 需要运行模拟 10 万用户的测试

java - 启动tomcat时出现ClassNotFoundException错误

loops - 在 FnMut 向量中迭代并调用闭包

for-loop - Go中使用 "continue Label"和使用 "break"跳出内循环的区别

python - 如何优化多列的条件累积和

Java + Android -> 启动新 Activity 时出现空指针异常

Java 卡在 FileOutputStream.close() 上用于 S3-to-EC2 下载

python - 测试在循环内不会改变的条件

python - 从列表中消除半重复项的高性能方法

python - 如何 for 循环遍历两个嵌套循环内的字符串列表并避免外部循环造成的冗余?