2017-12-04 5 views
0

for-loop에서 while-loop로 변환하는 방법을 모릅니다. 모든 시도가 실패했습니다.`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; 

가 어떻게 동안-루프에 대한 - 루프이 변환 할 수 있습니다 : 나는 다음과 같은 코드가?

//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 
+0

코드가 추악해질 수 있습니다. –

답변

0

for 루프 while 루프 그들의 구문 다릅니다으로

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

는 동일하다. for 루프의 등가 :

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

아래 코드 만 while 루프 함께

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

입니다 : 주석

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(" "); 
    } 
} 

설명은, 그것은 도움이 희망!

0
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++; 
} 

이 당신을 도울 수 있습니다.

0
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++; 
} 
2

for 루프는 기본적으로 while 루프를 작성하는 컴팩트 한 방법입니다.

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

}