클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

반복문과 배열 그리고 예외 처리 5 - for문 실습 본문

프로그래밍 언어/자바

반복문과 배열 그리고 예외 처리 5 - for문 실습

huenuri 2024. 8. 11. 11:56

지난번에 배열을 조금 학습하다 말았는데 전에 학습했던 반복문을 다시 학습해보려고 한다. 반복문도 많이 잊어버려서 복습이 필요하다. 너무 쉬운 건 제외하고 풀만한 예제들 위주로 학습해볼 것이다.

 


 

 

 

 

for문

 

1. 연속된 수 출력하기

 

오른쪽부터 거꾸로 출력하는 문제인데 잘 풀었다.


 

 

 

 

 

2. 1~100까지의 수 중에서 조건에 맞는 수 출력

 

 

전에 풀 때는 3번  문제는 풀지 못했는데 이번에는 혼자서도 아주 잘 풀었다. 너무나도 뿌듯하다. 이제 반복문도 재미있어졌고 알고 나니 별로 어렵지 않았다.


 

 

 

 

3. 약수와 총합 구하기

 

첫번째 도전

 

 

왜 3부터는 약수가 1만 되는지 모르겠다.

 

 

for 루프는 1부터 시작해 i가 num의 약수인지 (num % i == 0) 확인하고, 약수라면 i를 출력한다. 하지만 for 루프의 조건식은 num % i == 0으로 되어 있어, i가 약수가 아닐 때 반복문이 종료된다. 이 조건식은 반복이 제대로 진행되지 않게 하는데, 이유는 i가 약수가 아닐 경우 for 루프가 즉시 종료되기 때문입니다.

■ 루프 조건 오류 : num % i == 0이 루프 조건으로 사용되면서, 반복이 제대로 작동하지 않는다.

 

오류 원인을 찾았으니 이제 문제를 다시 풀어보자!

 

 


 

 

 

 

다시 풀어보기

 

 

 

 

이제 답이 잘 나왔다. 약수를 구하는 것 그동안 어려웠는데 드디어 알았다!


 

 

 

 

4. 연산자 사용하여 1부터 10까지 합 구하기

책에 있는 문제를 좀더 어렵게 변형해서 풀어보았다.

 

 

원하는 수를 입력 받으면 그 수의 합계가 출력된다. else를 사용하지 않고 if를 쓴 이유는 else를 쓰면 뒤의 =이 출력되지 않는 경우가 생기기 때문이다.

지난번에 풀 때는 이 문제도 잘 풀지 못하고 이상하게 출력이 되었다. 지금 이 코드를 보니 틀린 이유가 보인다. 이렇게 스스로 문제를 만들어보고 변형하는 건 정말 좋은 습관이다.


 

 

 

 

학습을 마치고

여기까지 for문 학습을 마쳐본다. 이제 while문을 학습해도 될 것 같다. 어제와 달라진 점은 공부가 재미있고 방송을 틀지 않고 그 어떤 음악을 틀어놓지 않아도 공부에 즐거움을 느끼고 있다는 것이다.

몰입이 아주 잘되고 있다는 증거이다.