给定numRows和numCols,打印剧院中所有座位的列表。行是编号的,列是字母的,如1A或3E。在每个座位后面打印一个空格,包括在最后一个座位之后。使用单独的打印语句来打印行和列。例如: numRows =2和numCols =3打印: 1A 1B 1C 2A 2B 2C
我的代码如下:
public static void main(String[] args) {
int numRows = 2;
int numCols = 3;
int rows = 0;
int cols = 1;
char col;
while (rows < numRows) {
rows++;
col='A';
while (cols <= numCols) {
System.out.print("" + rows + col + " ");
col++;
cols++;
}
}
System.out.println(" ");
return;
}
}
我的输出如下:
1A 1B 1C
我试着让它像这样:
1A 1B 1C 2A 2B 2C
为什么我的循环会停在1处?
发布于 2015-02-27 13:39:41
在rows++;
后面添加一行cols = 1;
发布于 2020-03-08 23:56:26
下面是我为这个特殊的ZyBooks挑战想出的方法(出于习惯,我使用了自己的迭代器,而不是预定义的迭代器):
import java.util.Scanner;
public class NestedLoops {
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
int numRows;
int numColumns;
int currentRow;
int currentColumn;
char currentColumnLetter;
numRows = scnr.nextInt();
numColumns = scnr.nextInt();
for (int i = 1; i <= numRows; i++) {
currentColumnLetter = 'A';
for (int x = 1; x <= numColumns; x++) {
System.out.print(i);
System.out.print(currentColumnLetter + " ");
currentColumnLetter++;
}
}
System.out.println("");
}
}
发布于 2015-02-27 13:38:22
您没有在外部循环中重置cols
的值。因此,第二次通过外部循环时,内部循环根本不会运行。还可以考虑使用for
循环:
for (int rows = 0; rows < numRows; ++rows) {
// ...
for (int cols = 0; cols < numCols; ++cols) {
// ...
}
}
https://stackoverflow.com/questions/28758232
复制相似问题