간단한 자바 반복문을 배우는 중인데, 증감연산자에 대해 잘 모르겠습니다
조회수 427회
public class Main {
public static void main(String[] args)
int i=1,sum=0;
while(i<=6) {
sum+=i++; }
System.out.println("1부터 6까지의 합은 "+sum);
}
}
1부터 6까지의 합을 구하는 코드입니다만 이해가 잘 되지 않습니다. 저 sum+=i++
라는 문장은, 즉 1+1 2+1 3+1 4+1 5+1 6+1 -> 2+3+4+5+6+7 라는 뜻 아닌가요? 저 코드가 어떻게 1+2+3+4+5+6 으로 해석되는건지 모르겠습니다. while(i<=6)
으로 시작되는 반복문은 i가 1일때부터 6일때까지의 의미인 것으로 이해했는데, 이것도 잘못 알고 있는 걸까요?
1 답변
-
후위 연산자
i++
은 어떤 구문을 실행한 직후 변수i
에 1을 더하는 연산자입니다.sum += i++;
위와 같은 구문은 곧 다음과 같은 등가 구문으로 바꿀 수 있습니다:
sum = sum + i; i = i + 1;
이러한 연산들을
i <= 6
인 동안 반복하면sum
값은21
이 되게 됩니다.assert sum == 0 + 1 + 2 + 3 + 4 + 5 + 6; // 21; 참값
while (...) { }
문을 사용하는 대신 편리한for (...) { }
문을 활용하는 방법도 있습니다.int sum = 0; for (int i = 1; i <= 6; i++) sum += i; System.out.println("1부터 6까지의 합은 " + sum);
// 혹은 더 간단하게 int sum = 0; for (int i = 1; i <= 6; sum += i++); System.out.println("1부터 6까지의 합은 " + sum);
참고:
assert
키워드는 뒤따라오는 조건식이 참이라고 확언함으로써 프로그램의 신뢰성을 높이는 키워드입니다.
댓글 입력