2016-11-11 4 views
0

나는 꽤 직선적 인 질문이 있습니다. 아래의 프로그램에서 for 루프의 첫 번째 반복에서 1을 증가시키지 않는 이유는 무엇입니까? 제 컴파일러는 첫 번째 실행에서 j는 둘 다 0이기 때문에 i보다 작지 않음을 보여줍니다. 감사합니다!중첩 루프 내에서 증분

int i; 
    for (i = 0; i < 5; i++) { 
    int j = 0; 
    while (j < i) { 
     System.out.print(j + " "); 
     j++; 
+0

왜'첫 번째 반복 동안 증가 될 i' 것인가? 'i'가 증가하는 유일한 시간은 첫 번째 반복의 끝에 있습니다. – Carcigenicate

+0

루프의 첫 번째 반복에서 for 루프의 초기 조건에 지정된대로 'i = 0'입니다. – iNan

+0

1에서 시작하려면 i를 1로 초기화하십시오. 그렇지 않으면 첫 번째 루프가 완료된 후에 만 ​​증가합니다! – JFed8

답변

2

i의 값은 초 반복하고 제 1 0이 될 것이다. 다음을 가지고 : 외부 중괄호 for 루프가 종료 후 변수 i가 더 이상에 있는지가 표시되지하는 것을

{ 
    int i = 0; 
    while (i < 5) { 
     // loop code 
     i++; 
    } 
} 

참고 :

for (int i = 0; i < 5; i++) { 
    // loop code 
} 

루프 위가 단지 문법 설탕입니다 범위.

+0

@flakes 좋은 지적. 전체 표현식에 중괄호를 추가하여 범위 지정을 표시합니다. –

-1
while (j <= i) 

출력 : 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4