※ 반복문 활용 (for)
이전 글에서 while문을 활용하여 짝수 / 홀수를 구하는 프로그램을 구현하였었다.
이번 글에서는 약속대로 while문 대신, for문을 활용하고, 두 구문간의 차이에 대해서 설명해보도록 하겠다.
1) 문제 01 - 1에서 100까지의 정수 중 짝수만의 합을 출력하는 프로그램 구현
이번에도 변수의 선언을 시작으로 문제에 접근하고자 한다.
우선, '짝수의 합'을 담을 변수 total을 선언하였다.
(total 변수의 경우, 합을 담아야 하기 때문에 초기 값은 0으로 설정되어야 한다. 초기 값이 없다면, 어떠한 값도 담을 수 없다!)
요약하자면,
변수 a는 1부터 시작하며, if문을 한번 실행시키고 나올 때마다 1씩 증가하여 총 100번을 반복하게 되는 코드로써,
실행 값은 2550이 출력된다.
문제의 핵심은 크게 세 가지이다.
- 정수형 변수 a를 for문 안에서 선언했다는 것
- 정수를 2로 나누었을때 나머지가 0이면 짝수라는 점을 if문의 조건으로 사용했다는 것
- total 변수에 짝수 a를 계속 누적해서 더해나간다는 점
특히 '+=' 의 의미를 모르면 풀기 어렵기 때문에 사전 지식이 있어야 할 것이다.
설명하자면, 우측 변과 좌측 변의 합을 다시 좌측 변에 대입하는 식으로써, 위 식에서는 짝수 a의 값이 2, 4, 6...100까지 순차적으로 대입되기 때문에 total 값은 짝수 값만 누적하여 더하게 된다는 것이다.
해석하자면 다음과 같다.
int total |
= |
0 (초기 값) |
+= |
2 |
(0 + 2) = total |
total |
= |
2 |
+= |
4 |
(2 + 4) = total |
total |
= |
6 |
+= |
6 |
(6 + 6) = total |
total |
= |
12 |
+= |
... |
... |
2) for문을 추천하는 이유는?
필자가 느낀점을 기준으로 설명하자면,
while문에서는 반복을 행하는 조건과 그 조건을 실행시키는 코드를 각각 다른 줄에 작성했었는데, for문에서는 이 모든 것을 한 줄에 작성하는 것이 가능하다.
잠시 비교를 위해 바로 위 문제와 동일한 결과를 내는 코드를 while문으로 다시 작성해보았다.
가장 눈에 띄는 차이점은 while문 7번째 줄에 있는 a++가 for문에서는 괄호 안으로 들어갔다는 것이다.
체감으로는 '단 한줄 줄었네?' 일지 모르겠지만, 상세히 보면 다른 장점들이 눈에 보인다.
- 간단한 코드에서 a++의 사용 순서에 크게 신경쓰지 않아도 된다는 점
- 변수 a를 밖에서 별도로 선언할 필요가 없어 코드 줄 및 복잡성이 다소 줄어든다는 점
※ for문에서는 임의의 변수를 괄호 안에서 즉시 선언하는 것이 가능하기 때문에, 변수를 휘발성으로 사용할 때도 상당히 효율적이다.
(사실 어떠한 방법을 사용하든 코드를 작성하는 것은 본인이니까 본인에게 편한 것을 선택하여 사용하면 될 것 같다.
이 블로그 개인이 혼자 공부해가며 내용을 정리하는 용도로 활용되고 있습니다.
잘못된 지식이나 이론을 게시하지 않도록 주의하고 있습니다.
'Java > Java 실전 코딩!' 카테고리의 다른 글
5. 자바 객체지향 - 로또 프로그램 구현하기 (0) | 2020.04.07 |
---|---|
4. 자바 프로그래밍 구조화 - 상수형 변수의 활용 (0) | 2020.03.11 |
2. 반복문 활용 - 짝수/홀수 구하기 (0) | 2020.03.01 |
1. 변수 선언 (0) | 2020.02.29 |