본문 바로가기
CSE/CP1 이론

CP1_04.조건문과 반복문_반복문

by 0/0 2024. 4. 15.

04. 조건문과 반복문(5주차 이론) 2. 반복문

종류: while, do~while, for

 

1)while

 

-반드시 괄호 안의 값은 Boolean 타입의 논리값

-반복문을 탈출하기 위한 체크변수를 반복문을 정의하기 전에 선언해주어야 

-체크 변수는 반복의 횟수를 저장하도록 하는 변수로 변수의 증감 연산이 반드시 정의되어서  변수의 값으로 반복 구문이 탈출 되도록 해주어야 

int num = 0; //초기식, 반복을 위한 조건에 사용하는 변수

while(num<5) {
	System.out.println(num); //반복해야 하는 구문
    num++		//증감연산_num의 값을 증가시키는 것은 반복의 탈출을 위한 것
 }

 

이때 출력 값은 아래와 같다

while문 출력

 

 2)do while 문

 

-do while 문은 조건식을 먼저 확인하는 게 아니라 반복 처리할 블록 {}을 먼저 실행한 후 반복의 조건을 확인함

-조건과 상관없이 먼저 한 번을 실행해야 하는 경우 사용

	int num = 0; //초기식, 반복을 위한 조건에 사용하는 변수
    
    do {
    	System.out.println(num);
        num++
    } while (num<5) //반복의 여부를 판별하는 조건식

 

이때 출력 값은 아래와 같다.

do while 문

 

 3)for 문 (앞으로 많이 씀)

 

-초기식, 조건식, 증감식을 반복문의 정의부에서 정의해 놓고 반복물을 실행하는 반복문으로 반복의 횟수가 정해져 있을 때 주로 사용

-배열이나 컬렉션의 리스트를 사용할 때 사용

		for (int i = 0; i<5; i++){ //for 반복문을 정의, 0~4까지 반복
        		System.out.println(i); //변수 i의 값을 출력
        } //주의_i가 for문 밖에서는 쓰일 수 없다.

 

이때 출력 값은 아래와 같다.

 

do while 문

 

 3-1)for each 루프

 

-배열의 각각의 원소를 모두 처리하고자 할 때 사용

		int[]numbers = { 10, 20, 30};
        for (int value : numbers) {
        //배열 numbers의 각 요소가 변수 value로 차례대로 대입
        	System.out.print(value+" ");
        }

 

이때 출력 값은 아래와 같다.

for each 루프

(아래는 또 다른 예시)

		String [] fruits ={"Apple", "Banana", "Pear", "Grape"}
        
        for( String name : fruits) {
        	System.out.print( name );
            System.out.print( ", " );
        }
        System.out.println();

 

이때 출력 값은 아래와 같다.

*마지막 줄의 System.out.println(); 은 딱히 의미 없는 부분 같다. 그저 다음 줄이 생성됨.

for each 루프_예시2

 

 4)반복문의 중첩

 

-반복문도 조건문과 마찬가지로 처리 블록{}안에 또 다른 반복문을 정의해서 처리할 수 있음

-구구단의 경우 각 단이 증가 하면서 각 단에서 2~9를 곱하는 패턴을 가지고 있음

반복문의 중첩_구구단 출력

위와 같은 형태로 구구단을 출력하려면

 

먼저 print를 사용해서 한 줄씩 왼쪽 수가 2~9까지 증가하는 동안 곱하기 1한 값을 반복해서 출력하고

그 후엔 다음 줄로 넘어가서 왼쪽 수가 또 2~9까지 증가하는 동안 1에서 1 증가한 2를 곱한 값을 반복해서 출력해야 함을 알 수 있다.

 

코드는 아래와 같이 짤 수 있는데, while문과 for문을 사용한 두 가지 버전이 있다.

		int i = 1; //출력 할 때의 행(오른쪽 수)을 표현하기 위한 반복문의 조건을 만들기 위한 변수
        
        while(i<10){//반복의 조건: 1~9
        
        	int j=2; //단(왼쪽 수)을 표현하기 위한 변수: 2~9
            
            while(j<10) {
            	System.out.print(j + "x" + i + "=" + j*i + "\t";};
                j++;
            }
            System.out.println();
            i++;
        }

while 문 사용

 

	for (int i =1; i < 10; 1++) {
    	
        for(int j = 2; j < 10; j++) {
        	System.out.print(j + " x" + i + " = " + j*i + "\t");
        }
        
        System.out.println();
       }

for 문 사용

 

 5)반복제어를 위한 키워드(2가지) : break

 

- 반복문 안에서 break 키워드를 만나면 반복문의 조건식과 관계없이 바로 반복문을 종료하고 반복문 다음 문장을 실행

-반복의 횟수를 모르지만 반복문을 사용해야 하는 경우 반복 블록{} 내에 조건을 두고 조건을 충족하면 반복문을 벗어나도록 할 때 사용

-반복문 내에서 조건식의 판단 결과와 상관없이 반복문을 완전히 빠져나가고자 할 때 사용

 

	int num = 0;
	
    while (true){
    
    if(num==5) {
    	break; //반복문을 벗어남
    }
    
    System.out.println(num);
    
    num++; //탈출을 위한 증가식
   }

 

출력 값은 아래와 같다.

반복 제어 키워드 break

 

 5)반복제어를 위한 키워드(2가지) : continue

-반복문 내에서 continue 키워드를 만나면 continue 아래 문장들은 건너뛰고 블록의 마지막으로 이동해서 다시 조건식으로 이동

-반복문 내에서 특정 조건일 때 처리하지 않고 건너뛰게 하고자 할 때 사용

 

		int num = 0;
        
        while (++num < 10) {
        
        	if(num%2 == 1) {
            	continue;
            }
            
            System.out.println(num);
            
          }

 

출력 값은 아래와 같다.

 

반복 제어 키워드 continue


배운 개념을 정리해보자

 

1. while문

2. do while문

3. for문

3-1. for each 루프

(여기에 배열이 나온다.)

4. 반복문의 중첩

5. 반복 제어 키워드 : break, continue

'CSE > CP1 이론' 카테고리의 다른 글

CP1_02.변수_1  (0) 2024.04.24
CP1_03.연산자*미해결포인트 있음  (0) 2024.04.22
04.조건문과 반복문_조건문  (0) 2024.04.20
CP1_05.배열(Array)_2_7주차  (0) 2024.04.20
CP1_05.배열(Array)_6주차  (0) 2024.04.15