Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用嵌套While循环在Java中显示行和列_Java_Algorithm_For Loop_While Loop_Nested Loops - Fatal编程技术网

如何使用嵌套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 ++;
    
            }
    
       }
    
    }