在课堂上,我被告知通过使用两个for循环来完成2D char数组的打印。有人可以告诉我这是如何工作的吗?谢谢。
我的代码在下面(它应该打印井字游戏板)
这是我的输出的照片: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();
}
}
}
答案 0 :(得分:0)
在代码中使用两个循环的原因是因为您需要在 EACH 行中打印 EACH 字符。
外循环使您每行,内循环使您每个字符其中。因此,在外循环的第一次迭代中,您将获得第一行。现在,您已经可以访问它了,可以继续进行操作,并通过内部循环遍历它包含的每个字符并打印出来。
该行中的所有字符都已打印完后,内循环结束,访问下一行,依此类推...
答案 1 :(得分:0)
两个for循环用于在移至下一行之前逐字符打印一行字符。 2D数组本质上是数组的数组,在这种情况下,是行的数组。外循环遍历板上的每一行,对于每一行,内循环遍历其中的字符。我添加了一些评论,希望可以澄清这一点。
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
}