반복문

  • 어떤 작업이 반복적으로 수행되도록 할 때 사용되는 구문

반복문의 종류

  • for문: 주로 반복횟수를 알고 있을 때 사용
  • 향상된 for문: 컬렉션과 배열을 처리할 때 더 효과적인 문법으로 JDK5.0 이후에 사용 가능
  • while문: 조건식으로 반복할 때 주로 사용
  • do-while문: 반복하기 전에 먼저 실행해야 하는 구문이 있을 때 사용

for문

  • for문 선언 형식
  • for( 초기식; 조건식; 증감식) {
      // 명령코딩
    }
    
  • 예제: 1부터 10까지의 합
  • public class ExFor {
    	public static void main (String[] args)
    	{
    		int i , sum = 0;   
            for ( i=1 ; i<=10 ;  i++) {
            	System.out.printf(i==10?"%d":"%d+",i);
    			sum+= i;    
    		}
            System.out.println("="+sum);
    	}
    }
    
    1+2+3+4+5+6+7+8+9+10=55
    

향상된 for문

  • 향상된 for문 선언 형식
  • for( 자료형  변수명 : 배열 또는 컬렉션 ) {
     // 명령코딩
    }
    
  • 예제: 배열에 담긴 국어 점수 출력
  • public class ExEnhancedFor
    {
    	public static void main (String[] args)
    	{
    		int [] kors = new int[5];
    		kors[0] = 100;
    		kors[1] = 90;
    		kors[2] = 77;
    		kors[3] = 23;
    		kors[4] = 88;
    		
    		for (int kor : kors) {
    			System.out.println(kor);
    		}
    	}
    }
    
    100
    90
    77
    23
    88
    

while문

  • while문 선언 형식
  • while( 조건식 ) {
     // 조건식이 참일 동안 반복될 명령 코딩
    }
    
  • 예제: 10부터 0까지의 합
  • public class ExWhile
    {
    	public static void main (String[] args)
    	{
    		int i = 10 , sum = 0;
    		while( i >= 0 ){
    			System.out.printf(i==0?"%d":"%d+",i);
    			sum += i; 
    			i--;
    		}
    		System.out.println("="+sum); 
    	}
    }
    
    10+9+8+7+6+5+4+3+2+1+0=55
    

do-while문

  • do-while문 선언 형식
  • do{
    // 먼저 한번 실행하고, 조건식이 참일 동안 반복할 명령 코딩
    }while( 조건식 );
    
  • 예제: 증가치에 따라 증가하는 항 값의 누적 합
  • public class ExDoWhile
    {
    	public static void main (String[] args) throws java.lang.Exception
    	{
    		int h = 1; // n 항의 누적 합
    		int n = 1; // 각 항: [1]+[2]+[4]+[7]+[11]+[16]+[22]
    		int k = 0; // 증가치:   1   2   3   4    5    6
     
    		do{
    			k+=1;
    			n += k;
    			if( n > 100) break;
    			h += n; // (누적)
    			System.out.printf("%d - %d - %d\n",n,k,h);
    		}while(true);	
    	}
    }
    
    2 - 1 - 3
    4 - 2 - 7
    7 - 3 - 14
    11 - 4 - 25
    16 - 5 - 41
    22 - 6 - 63
    29 - 7 - 92
    37 - 8 - 129
    46 - 9 - 175
    56 - 10 - 231
    67 - 11 - 298
    79 - 12 - 377
    92 - 13 - 469
    

제어문(Control Flow Statement)

  • 제어문이란, 프로그램 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것이다.
  • 일반적으로 조건식과 실행 구문인 중괄호(블록, { })으로 구성되어 있다.

제어문의 종류

  • 조건문(decision-making statements): if문, switch문
  • 반복문(looping statements): for문, while문
  • 분기문(branching statements): break, continue, return

조건문-if문

  • 조건식의 결과에 따라 블록 실행여부가 결정
  • 조건식에는 boolean 변수 또는 true/false 값을 산출하는 연산식
  • 조건식이 true이면 블록 실행, false이면 실행하지 않음

if문 종류

  • if문
  • if(조건식) {
    
     // 조건식이 참일 경우 실행 구문
    
    }
    
    • 조건식의 결과에 따라 블록 실행여부가 결정
    • 조건식에는 boolean 변수 또는 true/false 값을 산출하는 연산식
    • 조건식이 true이면 블록 실행, false이면 실행하지 않음
  • if-else문
  • if(조건식) {
    
     // 조건식이 참일 경우 실행 구문
    
    }else {
    
     // if문의 조건식이 거짓일 경우 실행 구문
    
    }
    
    • if문이 false일 경우 else 문으로 넘어감
    • 조건식의 결과에 따라 이 두 개의 블록 중 한 블록만 실행 후 if문을 벗어남
  • if-else if-else문
  • if(조건식A) {
    
     // 조건식A가 참일 경우 실행 구문
    
    } else if(조건식B) {
    
    // 조건식A가 거짓이고, 조건식B가 참일 경우 실행 구문
    
    } else if(조건식C) {
    
    // 조건식A, B가 거짓이고, 조건식C가 참일 경우 실행 구문
    
    } else {
    
    // 모든 조건식이 거짓일 경우 실행 구문
    
    }
    
    • 조건문이 여러 개인 다중 if문
    • if 블록 끝에 else if문을 통해 false 일 경우 계속 다음 else if 문으로 넘어감
    • else if문의 수는 제한이 없다
    • 여러 개의 조건식 중 true가 되는 블록만 실행하고 전체 if문을 벗어남
  • 중첩 if문
  • if(조건식 A) {
         // 조건식 A가 참일 경우 실행 구문
         if(조건식 B) {
                    // 조건식 A와 B가 참일 경우 실행 구문
         }
    }
    
    • if문 블록 내에 또 다른 if문을 사용하는 것
    • 중첩의 단계는 제한이 없어 실행흐름을 잘 판단하여 작성
  • 참고: Oracle JAVA Documentation에서는 if-then (=if)문과 if-then-else(if-else문과 if-else if-else문)문 두개로 나눈다. (여기서는 if-else문 설명을 위해 좀더 자세히 분류했다.)

switch문

  • if문과 달리 변수가 어떤 값을 갖느냐에 따라 실행문이 선택
  • if문의 경우의 수가 많아질 수록 switch 문을 사용하는 것이 효과적
  • 괄호 안의 동일한 값을 갖는 case로 가서 실행문을 실행
  • 동일한 값의 case가 없으면 default로 가서 실행문 실행(생략 가능)
  • 변수 값에 따라 case가 실행된 후 제어문을 빠져나가기 위해 break; 사용

형식

switch(변수) {
	case 값1:
		실행문;
		break;
	case 값2:
		실행문;
		break;
	default: // 생략 가능
		실행문;
		break;
}

+ Recent posts