2017-01-30 3 views
0

아래의 코드에서 for 루프를 반복적으로 여러 번 반복 할 수 있습니다. 예를 들어 두 for 루프 모두 10 회 반복되지만 문자열을 함께 사용하면 문자열 "hi"가 20 회 이상 인쇄됩니다.중첩 for 반복 횟수를 어떻게 계산합니까?

내부 루프는 몇 번 반복합니까?

for(int j=0; j<10; j++) 
    for(int k=10; k>0; k--) 
     System.out.println("hi"); 
+6

10 가지를 10 번 수행하면 100 가지를 완료했습니다. –

+0

@ElliottFrisch가 말했듯이, "hi"가 100 번 인쇄 될 것입니다. – mc20

+0

오, 알았습니다. 그래서 내부 루프가 10 번 반복한다고 말했을 때 나는 맞습니까? – coderrr

답변

3

각 반복 횟수 (이 경우 10 * 10)를 곱하면되는 것처럼 간단합니다.

int count = 0; 
for(int j=0; j<10; j++){ 
    for(int k=10; k>0; k--){ 
     count++; 
    } 
} 
System.out.println("The nested loop iterated " + String.valueOf(count) + " times!"); 

편집 : 당신이이만큼 간단하지 않다 발견하는 경우 다음과 같은 시험을 수행 할 수 있습니다 무엇을 이해하는 아마 쉬운 방법은 계속된다 다룰 때

int total_count = 0; 
for(int j=0; j<10; j++){ 
    System.out.println("The outer loop has iterated " + String.valueOf(j+1) + " times!"); 
    System.out.println("Executing the inner loop"); 
    int local_count = 0; 
    for(int k=10; k>0; k--){ 
     local_count ++; 
     total_count ++; 
     System.out.println("Inner loop #" + String.valueOf(j+1) + " has iterated " + String.valueOf(local_count) + " times!"); 
     System.out.println("The inner loop's total iterations are " + String.valueOf(total_count) + " times!"); 
    } 
} 
System.out.println("The nested loop iterated " + String.valueOf(total_count) + " times!"); 
+0

이 테스트는 중첩 루프가 100 번 반복되는 것을 인쇄합니다. 그것은 다른 루프와 별개로 보지 않는다는 것을 의미합니까? – coderrr

+0

외부 루프가 반복 할 때마다 k 값이 10으로 재설정되므로 내부 루프가 다시 시작된다는 점에서 분리되어 있습니다. 외부 루프가 10 번 반복되고 내부 루프가 외부 루프 INSERT이기 때문에 내부 루프가 10 번 실행되고 10 번 (10x10) 반복됩니다. 따라서 내부 루프 내의 코드는 100 번 실행됩니다. – ChickenFeet

+0

나는 이해하기 시작했다고 생각한다. 그러나 "** 내부 ** 루프가 몇 번 반복합니까?"라고 묻는 중입니다. 그리고 ** "중첩 된 ** 반복은 몇 번 반복합니까?" 다른? 서로 다르면 내부 루프가 10 번 반복되고 중첩 루프가 100 번 반복됩니다. 내가 틀렸다면 나를 바로 잡아주세요. – coderrr

0

중첩 루프는 항상 첫 번째 루프 j을 행으로 표시하고 두 번째 루프 k을 열로 시각화합니다.

enter image description here

행은 left-to-right 가서 열 top-to-bottom 이동합니다. row x column 크기를 곱하면 대개 얼마나 많은 반복이 발생합니까?

+0

이 점에서 중첩 루프는 10 번 반복되지만 전체 프로그램은 100 번 반복됩니다. – coderrr

+0

@ally 행 (j는 귀하의 경우)이 10 번 반복됩니다. 열 (귀하의 경우 k)이 10 번 반복됩니다. 루프를 중첩 했으므로'j x k'를 곱하면 중첩 루프가 100 번 반복됩니다. – coletrain

+0

질문에 답변하기 위해 곱셈 테이블을 정말로 파열 시켰습니까? -_- –

관련 문제