Java공부(코딩)

코딩초보의 Java공부 3일차 (반복문)

동곤일상 2024. 12. 8. 16:50
반응형

오늘은 반복문에 대해서 공부해볼게요  

저는 복습의 느낌이라 일기 형식으로 작성하며 공부하는것이라

개념보단 코드위주로 말씀드리는 점 양해부탁드립니다..

그래도 나름 초보분들에게 도움은 충분히 될 것 같아요~~

 

원래는 IntelliJ 사용했는데 1월중순에 가는 학원에서 Eclipce(이클립스)

사용한다고해서 적응할겸 자바공부를 다시하고있어요.. 되게 어렵네요

이클립스 사용꿀팁이나 알아두면 좋을거 댓글로 알려주세요!!

 

반복문은 대표적으로 while , do-while , for 가 있습니다

중복된코드를 없애고 반복하기 위해서 사용한다 라고 봐주시면 될것같아요

 

1)while 문

긴말하지않고 while문으로 1 부터 10까지 더하는 코드 해볼게요

이 while문은 내부에서 i값을 증가시키고  result에 누적하는

 문장들이  i가 11보다 작을때 까지만 반복됩니다.

 i 가 11이 되는순간{ (i<11) 이 거짓이 되는 순간}

이 반복문은 break 되어 while문 밖으로 나가게됩니다.

결과는 이렇게 나오게됩니다


바로 이것을 응용해 숫자의 제곱을 구하는 반복문을 만들어볼게요 

count함수를 선언해 제곱숫자만큼 반복하게 설정

result함수를 1로 초기화 후 반복 수 만큼  i 자기자신과의 곱을 하도록 값 누적

1제곱이면 result  = 1 * i. ( result값으로 자기 자신(i) 대입)

2제곱이면  result = i * i 가 되는것임 


2)do - while 문

do-while문은 조건에 상관없이 최초 한번은 출력이되어야 할 때 유용함

예를 한번 들어볼게요

while(i<3) { println("현재 숫자는 ? "+i ); , i++ } 문에

i = 10; 을 지정했다면 아무것도 출력되지않을거에요.

do-while문은 이러한 문제를 해결 할 수 있어요.

do{ } 에서 한번 실행 후 while 조건(i<3)에 맞지않으니 즉시 break;
i를 0으로 초기화 시 이렇게 출력이 됨 i<3 이 거짓일 때 (i가 3이 될 때)바로 break;


3)break 와 continue

break와 continue 는 반복문에서 사용할 수 있는 키워드.

break : 만나면 그 즉시 반복문이 종료

continue 만나면 조건식으로 돌아감 (조건식이 참이면 반복문실행)

 

break 문의 예를 한번 보여드리겠습니다.

i를 +1 씩 증가시키면서 더하는 문장임

 break문이없다면 끝없이 i를 증가시키며 sum이 계속 출력될것이다.

break문을 통해 20보다 큰 수가 나오자마자 반복문 종료

1부터6까지의합 : 21 

 

다음은 continue문을 사용한 예제를 보여줄게요

 

2로나눴을때의 나머지가 0 일때 (짝수)

continue : 다음 문장을 건너뛰고 조건문으로돌아감

홀수만 출력하게 되는 프로그램

 


4)for문 (정말 자주 쓰여요)

 

for문도 while문과 같은 반복문이다 (다만 반복횟수를 정해두고싶을 떄 주로사용)

for문은 다음 순서대로 실행된다.

1. 초기식이 실행. 주로 반복 횟수와 관련된 변수를 선언하고 초기화 사용한다. 초기식은 1 사용

2. 조건식을 검증 ==> . 참 :  코드 실행, // 거짓 : for문 탈출 .

3. 코드를 실행.

4. 코드가 종료되면 증감식을 실행. 주로 초기식에 넣은 반복 횟수와 관련된 변수의 값을 증가할 사용

5. 다시 2. 조건식 부터 시작한다. (무한 반복)

 

예시로 1부터 10까지 더하는 for문을 작성해보겠다.

여기서 num을 굳이 선언하지않고. for문 조건식에 10을 집어 넣어도 됨

 


5) 중첩 반복문

for , while문 모두 중첩반복문 사용 가능 (주로 for문을 사용)

대표적인 중첩반복문 예로 구구단을 만들어보겠습니다.

코드로 이해하는게 조금 더 와닿기도하고 직접 쳐봐야 이해됩니다.

위에 i 의 초깃값을 고정한 후 j 가 1부터 9까지 돌아간 후 반복문을 빠져나와 i가 증감되는 방식

여기서 중요한건 result의 변수초기화 위치이다 . 내부 for문 안에서 초기화하지않으면

result값이  초기화되지않고 계속 쌓여서 원하는 구구단을 만들 수 없게 된다.

(자세히 궁금하다면 댓글 남겨주세요)


## 예제문제 (총 정리)

그렇게 복잡하진 않은 문제로 생각해봤어요

숫자를 입력하면 1부터 그 숫자까지  오직 짝수의합을 구하는 겁니다

ex) 5입력 --> 2+4   를 수행하는 것

 

 

답:( 다른 코드가 나올 순 있음) while문을 사용해도 좋음

 

이렇게 예제문제까지 풀어봤습니다.

 

총 정리를 간단하게 하자면  

정해진 횟수만큼 반복을 수행해야 하면 for 사용하고

그렇지 않으면 while 사용하면 된다.

물론 이것이 항상 정답은 아니니 이렇다고만 알아둡시다