簡體   English   中英

如何通過“ while”循環執行此任務?

[英]How to do this task with `while` loop?

我不知道如何將所有嘗試都從for循環轉換為while循環。 我有以下代碼:

public static void main(String[] args) {
    int[][] arr = new int[4][];
    arr[0] = new int[4];
    arr[1] = new int[2];
    arr[2] = new int[1];
    arr[3] = new int[3];

int counter = 1;

如何將此for循環轉換為while循環?

 //fill arr numbers from 1 to 10
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j] = counter++;
            }
        }

    for (int i = 0; i < arr.length; i++) {
            System.out.print(" arr [ " + i + " ] = ");
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println(" ");
        }

    }
}

輸出:

arr [ 0 ] = 1 2 3 4  
arr [ 1 ] = 5 6  
arr [ 2 ] = 7 
arr [ 3 ] = 8 9 10

for循環基本上是while循環的緊湊寫法。

for (int i = 0; i < arr.length; i++) { 
  ... 
}

與:

int i=0;
while(i<arr.length){
  ....
  i++;

}
while(int i <arr.length)
{
   while(int j<arr[i].length)
   {
     arr[i][j] = counter++;
    j++;
   }
i++;
}

 while(int i <arr.length)
{
   System.out.print(" arr [ " + i + " ] = ");
   while(int j<arr[i].length)
   {
     System.out.print(arr[i][j] + " ");
    j++;
   }
 System.out.println(" ");
i++;
}

這可能對您有幫助。

int i = 0;
while ( i < arr.length ) {
int j = 0;
    while ( j < arr[i].length;)
       {
        arr[i][j] = counter++;
       j++;
       }
i++;
}

然后打印值

int i = 0;
while ( i < arr.length ) {
    System.out.print(" arr [ " + i + " ] = ");
    int j = 0;
    while ( j < arr[i].length) {
        System.out.print(arr[i][j] + " ");
     j++;
    }
    System.out.println(" ");
i++;
}

for循環和while循環的語法不同。 相當於for循環:

for(int i = 0; i < arr.length; i++) {
    ...
}

int i = 0;
while(i < arr.length) {
    ...
    i++;
}

以下是您的代碼,但帶有while循環:

public static void main(String[] args) {
    int[][] arr = new int[4][];
    arr[0] = new int[4];
    arr[1] = new int[2];
    arr[2] = new int[1];
    arr[3] = new int[3];

    int counter = 1;
    int i = 0, j = 0; // Initialize vars for while loops

    //fill arr numbers from 1 to 10     
    while(i<arr.length){
        while(j<arr[i].length){
            arr[i][j] = counter++;
            j++; // Increment as in for loops
        }
        i++; // Increment as in for loops
        j = 0; // Restart j to the next outer loop step
    } 

    i = 0; // Reset i for outer loop
    // No need to j=0 since when the above loop ends, j will reset to 0

    while(i<arr.length){
        System.out.print(" arr [ " + i + " ] = ");
        while(j<arr[i].length){
            System.out.print(arr[i][j] + " ");
            j++; // Increment as in for loops
        }
        i++; // Increment as in for loops
        j = 0; // Same objective as in the loop above
        System.out.println(" ");
    }
}

注釋中的解釋,希望對您有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM