请帮忙!用户应输入正方形的大小以及希望填充它的字符。这是我现在的代码:
Scanner myKey = new Scanner(System.in);
System.out.print("\nHow many rows and columns (min 4 & max 20)? ");
int rowCol1 = myKey.nextInt();
System.out.print("Which character do you want to fill your square with? ");
char symbol1 = myKey.next(".").charAt(0);
char[][] choice1 = new char[rowCol1][symbol1];
for (int i = 0; i<choice1.length; i++) {
for (int j = 0; j<choice1[i].length; j++) {
choice1[i][j] = symbol1;
}
}
for (int i = 0; i<choice1.length; i++) {
for (int j = 0; j<choice1[i].length; j++) {
System.out.print(choice1[i][j] + " ");
}
System.out.println();
}
我的代码不正确。如果我输入例如4和@,则正确的输出应为:
@ @ @ @
@ @ @ @
@ @ @ @
@ @ @ @
请帮我修改我的代码,以便获得所需的输出。提前谢谢
答案 0 :(得分:1)
您似乎错误地初始化了数组的大小。第二个参数应与第一个参数相同,因为您需要一个行和列数相等的方阵。因此,不应使用 symbol1 作为列数的参数,而应使用用于定义行数的相同变量 - rowCol1
行 -
char[][] choice1 = new char[rowCol1][symbol1];
应将 symbol1 替换为 rowCol1 ,因为您希望它是方阵 -
char[][] choice1 = new char[rowCol1][rowCol1];