如何使用嵌套While循环在Java中显示行和列
我试图得出以下结果:如何使用嵌套While循环在Java中显示行和列,java,algorithm,for-loop,while-loop,nested-loops,Java,Algorithm,For Loop,While Loop,Nested Loops,我试图得出以下结果: Row 1 Col A Row 1 Col B Row 2 Col A Row 2 Col B 我很难理解完成这项任务的逻辑。到目前为止,我提出了以下代码: int iRowNum; int iColLetter; iRowNum = 1; iColLetter = 65; while (iColLetter < 67) { System.out.println("Row " + iRowNum + " Col " + (char)iColLetter);
Row 1 Col A
Row 1 Col B
Row 2 Col A
Row 2 Col B
我很难理解完成这项任务的逻辑。到目前为止,我提出了以下代码:
int iRowNum;
int iColLetter;
iRowNum = 1;
iColLetter = 65;
while (iColLetter < 67)
{
System.out.println("Row " + iRowNum + " Col " + (char)iColLetter);
iColLetter++;
while (iRowNum < 3)
{
iRowNum += 1;
}
}
贝京说,我有一种感觉,我正在接近我需要的地方,但我花了大量时间试图找出我想要的输出背后的逻辑
最后一个问题
如何显示本文第一部分所示的行和列?您混淆了递增顺序。这应该可以做到:
iRowNum = 1;
iColLetter = 65;
while (iRowNum < 3) {
for(int i = 0; i + iColLetter < 67; i++){
System.out.println("Row " + iRowNum + " Col " + (char)(iColLetter + i));
}
iRowNum += 1;
}
iRowNum=1;
iColLetter=65;
而(iRowNum<3){
对于(int i=0;i+i收集器<67;i++){
System.out.println(“行”+iRowNum+“列”+(字符)(iColLetter+i));
}
iRowNum+=1;
}
首先循环行,然后循环列。这就是为什么你没有得到想要的输出。请参阅代码中的以下更正:
iRowNum = 1;
while (iRowNum < 3)
{
iColLetter = 65;
while (iColLetter < 67)
{
System.out.println("Row " + iRowNum + " Col " + (char)iColLetter);
iColLetter++;
}
iRowNum += 1;
}
iRowNum=1;
而(iRowNum<3)
{
iColLetter=65;
而(iColLetter<67)
{
System.out.println(“行”+iRowNum+“列”+(字符)iColLetter);
iColLetter++;
}
iRowNum+=1;
}
我已将答案粘贴到尽可能靠近您的代码的地方。我不得不做一些小的改动——您应该分析每一个,以了解每行代码在循环工作方式上的细微差别,以及在某些情况下您需要如何重新初始化变量/重新构造循环
int iRowNum = 1;
int iColLetter = 65;
while (iRowNum < 3)
{
while (iColLetter < 67)
{
System.out.println("Row " + iRowNum + " Col " + (char)iColLetter);//print alphabet for the given row
iColLetter++;//increment the alphabet
}
iRowNum += 1;//row 1 printed, point to row 2
iColLetter=65;//row 1 printed, reinitialize to start printing at A
}
}
intIrownum=1;
int iColLetter=65;
而(iRowNum<3)
{
而(iColLetter<67)
{
System.out.println(“行”+iRowNum+“列”+(字符)iColLetter);//打印给定行的字母表
iColLetter++;//增加字母表
}
iRowNum+=1;//打印第1行,指向第2行
iColLetter=65;//第1行已打印,请重新初始化以开始打印
}
}
按以下步骤操作:
public class Main {
public static void main(String[] args) {
int iRowNum = 1;
int iColLetter = 65;
while (iRowNum < 3) {
iColLetter = 65;
while (iColLetter < 67) {
System.out.println("Row " + iRowNum + " Col " + (char) iColLetter);
iColLetter++;
}
iRowNum += 1;
}
}
}
说明:
Row 1 Col A
Row 1 Col B
Row 2 Col A
Row 2 Col B
iRowNum
上升到2
,因此可以从while(iRowNum<3)
或while开始(iRowNum您的输出只有两行,这意味着程序没有进入内部while循环进行打印。原因是iColLetter=65,它增加到57,并停止进入内部while循环。因此您必须在外部循环中重置iColLetter=65。
看看这个例子
public class NestWhileLoop {
public static void main(String [] args) {
int iRowNum = 1;
int iColLetter = 65;
while (iRowNum < 3) {
while (iColLetter < 67){
System.out.println("Row " + iRowNum + " Col " + (char)iColLetter);
iColLetter++;
}
iColLetter = 65;
iRowNum ++;
}
}
}
公共类nestwileloop{
公共静态void main(字符串[]args){
int iRowNum=1;
int iColLetter=65;
而(iRowNum<3){
而(iColLetter<67){
System.out.println(“行”+iRowNum+“列”+(字符)iColLetter);
iColLetter++;
}
iColLetter=65;
iRowNum++;
}
}
}
将iColLetter++放在内部while循环之后(while(iRowNum<3))
public class Main {
public static void main(String[] args) {
int iRowNum = 1;
int iColLetter = 65;
while (iRowNum < 3) {
iColLetter = 65;
while (iColLetter < 67) {
System.out.println("Row " + iRowNum + " Col " + (char) iColLetter);
iColLetter++;
}
iRowNum += 1;
}
}
}
Row 1 Col A
Row 1 Col B
Row 2 Col A
Row 2 Col B
public class NestWhileLoop {
public static void main(String [] args) {
int iRowNum = 1;
int iColLetter = 65;
while (iRowNum < 3) {
while (iColLetter < 67){
System.out.println("Row " + iRowNum + " Col " + (char)iColLetter);
iColLetter++;
}
iColLetter = 65;
iRowNum ++;
}
}
}