【问题标题】:Printing 2D char array in Java with For loop使用 For 循环在 Java 中打印二维字符数组
【发布时间】:2020-02-27 02:22:50
【问题描述】:

在课堂上有人告诉我,打印出 2D 字符数组是通过使用两个 for 循环来完成的。有人可以向我解释这是如何工作的吗?谢谢你。

我的代码在下面(它应该打印一个井字游戏板)

这是我输出的照片:Image

import java.util.Scanner;

 public class TicTacToe{

   public static void main(String [] args){



            char[][] gameBoard = {{' ', '|', ' ', '|', ' '},
                                        {'-', '+', '-', '+', '-'},
                                        {' ', '|', ' ', '|', ' '},
                                        {'-', '+', '-', '+', '-'},
                                        {' ', '|', ' ', '|', ' '}};


         for(char [] row: gameBoard){
          for(char c: row){
            System.out.print(c);
          }
            System.out.println();
          }

     }

 }

【问题讨论】:

  • 有问题吗?还是您要求我们向您解释您的代码?
  • @shmosel 不幸的是后者。
  • 你不明白的地方能不能说得具体一点?
  • 请解释代码!

标签: java arrays loops for-loop printing


【解决方案1】:

在您的代码中使用两个循环的原因是您需要在 EACH 行中打印 EACH 字符。

外循环为您获取每一行,内循环为您获取该行WITHIN的每个字符。因此,在外循环的第一次迭代中,您将获得第一行。现在您正在访问它,您可以继续循环遍历它与内部循环一起保存的每个字符并打印它们。

打印完该行中的所有字符后,内循环结束并访问下一行,依此类推...

【讨论】:

    【解决方案2】:

    两个 for 循环用于在移动到下一行之前逐个字符地打印一行。二维数组本质上是一个数组数组,或者在这种情况下,是一个行数组。外循环遍历板上的每一行,对于每一行,内循环遍历其中的字符。我添加了一些 cmets 希望澄清这一点。

     for(char [] row: gameBoard){   //loops through each row in the gameboard 
        for(char c: row){           //loops through each character in the current row
          System.out.print(c);      //prints out the current character in the current row
        }
        System.out.println();       //creates a new line after all characters in a row have been printed
     }
    

    【讨论】:

    • 非常感谢,这对您有很大帮助!因此,如果您使用工作“行”,这将告诉编译器您要循环遍历 gameBoard 数组的每一行?
    • 不,标识符“row”只是外部循环计数器的变量名。这是一个增强的 for 循环,其中程序循环遍历行并将当前行分配给变量“row”。真正的名字并不重要。 “char c: 行”也是如此。它循环遍历当前行(从外部循环中保存为“行”)并将每个字符分配给变量“c”,然后将其打印出来。
    猜你喜欢
    • 2013-08-02
    • 2015-06-12
    • 2012-11-26
    • 2018-07-19
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多