2023.01.25 day03

Lee·2023년 1월 25일
0

1. 조건문

1-1. 조건문이란?

  • 무조건 실행되는 것이 아니라, 특정 조건을 충족할 경우에만
    실행되는 구문

    1-2. 조건문의 종류

  • if 문 : 주어진 '조건'이 참(true)일 경우에만 실행,
  • if ~ else 문 : 주어진 '조건'이 참(true)일 경우 if문이 실행,
    그렇지 않은경우 else 문이 실행된다.

    1-3. if 문

  • if문은 주어진 조건이 참일 경우에 지정된 구문이 실행된다.
		if(조건){
        		.... 실행할 구문 ....
            }
            
  • if문의 조건식
    -> 비교식 (비교 연산자 사용)
    -> 논리식 (논리 연산자 사용)
    -> boolean 값

1-4. if ~ else

  • 그렇지 않으면 ?
  • if문이 조건이 참일 경우에 실행되는 구문이라면,
    if문의 조건과 반대되는겨웅에 실해오디는 구문이 else문이다.
  • else문은 독립적으로 실행될 수 없고, 반드시 if문의 뒤에
    위치해야한다.
    boolean is_korean = false;
    		
    		if( is_korean == true ) {
    			System.out.println("한국 사람 입니다.");
    		} else {
    			System.out.println("한국사람이 아닙니다.");
    		}
    		
    		// 값 자체가 참이므로 성립된다.
    		if( is_korean ) {
    			System.out.println("한국 사람 입니다!!");
    		}
    		
    		// "!"는 값을 부정한다. 참을 부정하므로 거짓이다.
    		if( !is_korean ) {
    			System.out.println("한국 사람이 아닙니다!!");
    		}

1-5. if ~ else if ~ else

  • if문과 else 문 사이에 else if문으로 두 번째 조건,
    세 번째 조건을 나열할 수 있다.

  • else if문은 필요한 만큼 나열할 수 있으며,
    필요치 않을 경우 else문은 생략 가능하다.

    	if( 조건 ){
    		.. 실행할 구문 ...
    	} else if( 조건 ) {
    		.. 실행할 구문 ...
    	} else if( 조건 ) {
    		.. 실행할 구문 ...
    	} else if( 조건 ) {
    		.. 실행할 구문 ...
    	} else if( 조건 ) {
    		.. 실행할 구문 ...
    	} else {
    		.. 실행할 구문 ...
    	}
         /* 
		 * 만약 point가 90 초과이고, 100 이하 이면 "A" 출력
         * 만약 point가 80 초과이고, 90 이하 이면 "B" 출력
		 * 만약 point가 70 초과이고, 80 이하 이면 "C" 출력
		 * 나머지 "F" 출력
		 */
		int point = 55;
		if( 90 < point && point <= 100 ) {
			System.out.println("A");
		} else if( 80 < point && point <= 90 ) {
			System.out.println("B");
		} else if( 70 < point && point <= 80 ) {
			System.out.println("C");
		} else {
			System.out.println("F");
		}

1-6. switch

  • 변수 값에 대한 경우의 수를 처리하는 switch문

  • switch문은 하나의 변수(기준 값)에 대한 여러가지
    case를 정의하는 구문이다.

  • if문은 조건에 식(비교식, 부등식)이 사용될 수 있지만
    switch문은 분기 조건이 반드시 일치하는 "값"에 대해서만
    처리 가능하다.

    	switch( 기준값 ){
    		case 값1:
    			.. 실행될 구문 ..
    		break;
    		case 값2:
    			.. 실행될 구문 ..
    		break;
    		case 값3:
    			.. 실행될 구문 ..
    		break;
    		default:
    			.. 모든 경우에 충족되지 않을 
    			경우 실행 ..
    		break;
    	}
char grade = 'B';
		
		switch( grade ) {
			case 'A':
				System.out.println("91~100점 사이 입니다.");
				break;
			case 'B':
				System.out.println("81~90점 사이 입니다.");
			case 'C':
				System.out.println("71~80점 사이 입니다.");
				break;
			default:
				System.out.println("70점 이하입니다.");
		}

2. 반복문

  • for
  • while
  • do~while

2-1. for문

  • for문은 사람이 직접 처리하기에 부담스러운
    반복적인 작업을 처리하기에 매우 용이하다.
    1+2+...+9+10 = 55

    	for( 초기식; 조건식; 증감식 ){
    		... 반복적으로 동작할 구문 ..	
    	}
    
    	- 초기식:최초로 초기식을 설정한다.
    	- 조건식:초기식을 설정한 다음에는 조건식을 판단한다.
    	- 만약 조건식이 참이라면 반복적으로 동작할
    	구문을 1회 수행한다.
    	- 반복 구문을 수행한 수, 증감식으로 이동한다.
    	- 증감식을 수행한 후, 다시 조건식으로 이동한다.
    	여전히 조건식이 참이라면 반복수행을 처리하고,
    	그렇지 않다면 for문을 종료한다.
      // 1부터 10까지의 누적된 합
		// 1 + 2 + ... + 9 + 10 = 55
		int sum = 0;
		
		// 초기식; 조건식; 증감식
		for(int i = 1; i <= 10 ; i++) {
			//sum = sum + i;
			sum += i; 
			System.out.println("sum : " + sum);
		}
		
		System.out.println("합은 : " + sum);

2-2. while문

  • while문 역시 for문과 마찬가지로 반복적인 처리를 수행하는
    문법이다.

  • for문은 초기식, 조건식, 증감식을 모두 내장하는 반면,
    while문은 조건식만을 내장하기 때문에 초기식과 증감식을
    외부에 따로 정의해 주어야 한다.

    초기식;
    
    while( 조건식 ){
    	... 반복적으로 동작할 구문 ..
    
    	증감식;
    }
    // 1 + 2 + ... + 99 + 100
    		
    		int sum = 0;
    		
    		int i = 1;
    		while( i <= 100 ) {
    			sum += i;
    			i++;
    		}
    		
    		System.out.println(sum);

2-3. do~while문

  • 조건의 판별을 나중에 수행하는 반복문 형태

  • 초기식을 설정한 후 do{...} 안의 문장을 우선적으로 1회
    실행하고 조건을 판별하므로,
    조건이 참이아니더라도 최소 1회는 실행된다.

    초기식;
    
    do{
    	.. 반복적으로 동작할 구문 ..
    	증감식;
    }while( 조건식 );
    // 1 + 2 + .. + 100
    		int sum = 0;
    		int i = 1;
    		
    		do {
    			sum += i;
    			i++;
    		}while( i <= 100 );
    		
    		System.out.println(sum);

2-4. 무한 루프

  • 증감식이 설정되지 않거나, 증감식이 수행되더라도 조건식이
    거짓이 되지 않은 형태

  • 조건식이 항상 참이므로, 반복문이 종료되지 않는다.

  • 프로그램이 PC의 자원을 매우 많이 사용하게 되므로,
    시스템 다운을 발생시킬 수 있다.

  • for문의 무한 루프 예

    for( int i = 0; i<=100; i-- ){
    System.out.println(i);
    }

  • while문 무한 루프 예

    while( true ){
    System.out.println("hello");
    }

profile
wow

0개의 댓글