조건문

치로·2024년 7월 17일

조건문

///조건문 단원 문제 다 풀어보기

1. 조건문이란?

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

2. 조건문의 종류 /// 잘 배우기

  • if문
    : 주어진 '조건'이 참(true)일 경우에만 실행
  • if~else문
    : 주어진 조건이 참일 경우 if문이 실행되고, 그렇지 않을 경우 else문이 실행
  • if~else if ~ else문
    : 조건을 여러개로 세부화하여 사용하는 if문
  • switch문
    : 하나의 '값'에 대하여 여러가지 경우의 수로 나누어 분기

3. if문

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

4. if~else문

  • 그렇지 않으면?
  • if문이 조건이 참일 경우에 실행되는 구문이라면, if문의 조건과 반대되는 경우에 실행되는 구문이 else문
  • else문은 독립적으로 실행될 수 없고 반드시 if문의 뒤에 위치
	if(조건) {
		...실행할 구문...
	}else {
		...반대 경우 실행할 구문...
	}

5. if~else if ~ else

  • 여러 가지 경우의 수를 분기
  • if문과 else 사이에 else if문으로 두 번째 조건, 세 번째 조건을 나열할 수 있음
  • else if문은 필요한 만큼 나열할 수 있으며, 필요치 않을 경우 else문은 생략 가능
	if (조건) {
		...실행할 구문...
	} else if (2차 조건) {
		...실행할 구문...
	}else if (n차 조건) {
		...실행할 구문...
	}else {
		...반대 경우 실행할 구문...
	}

6. switch문

  • switch문은 하나의 변수(기준값)에 대한 여러가지 case를 정의하는 구문
  • if문은 조건에 식(비교식, 부등식)이 사용될 수 있지만 switch문은 분기 조건이 반드시 일치하는 "값"에 대해서만 처리 가능
	switch( 기준값 ) {
	case 값1 : 
		... 실행될 구문 ...
		break;
	case 값n :
		... 실행될 구문 ...
		break;
	default :
		... 모든 경우에 충족되지 않을 경우에 실행될 구문 ...
		break; /// 마지막에 올 경우 있어도 되고 없어도 됨
	}
  1. 반복문
    2-1. for문 ///그림 참고
    1 + 2 + ... + 99 + 100
    (1) 최초로 초기식을 설정
    (2) 초기식을 설정한 후, 조건식을 판단, i가 100보다 작거나 같은지 판단
    (3) 만약 조건식이 참이라면 반복적으로 동작할 구문을 1회 실행
    (4) 반복문을 수행한 후, 증감식으로 이동
    (5) 증감식을 수행한 후, 다시 조건식으로 이동
    여전히 조건식이 참이라면 반복 수행을 처리하고, 그렇지 않다면 for문을 종료
    /// 엑셀로 공부
    2-2. while문 ///그림 참고
  • while문 역시 for문과 마찬가지로 반복적인 처리를 수행하는 문법
  • for문은 초기식, 조건식, 증감식을 모두 내장하는 반면,
    while문은 조건식만을 내장하기 때문에 초기식과 증감식을 외부에 따로 정의해주어야 함
    2-3. do~while문 ///잘 안 씀, 그림 참고
  • 조건의 판별을 나중에 수행하는 반복문 형태
  • 초기식을 설정한 후 do {...} 안의 문장을 우선적으로 1회 실행하고 조건을 판별하므로, 조건이 참이 아니더라도 최소 1회는 실행

연습 코드

package condition;

public class Main01 {

	public static void main(String[] args) {
		int myage = 19;
		
		if(myage == 19) {
			System.out.println("19살입니다.");
		}
		
		// 만약, myage가 20살이 아니라면,
		// "20살이 아닙니다"를 출력하시오
		if(myage != 20) {
			System.out.println("20살이 아닙니다.");
		}
		
		// 만약, myage가 20살 이상이면 "넷플릭스 성인 컨텐츠를 감상할 수 있습니다."를 출력
		if(myage >= 20) {
			System.out.println("넷플릭스 성인 컨텐츠를 감상할 수 있습니다.");
		}
		// 만약, myage가 19살 이하면 "넷플릭스 성인 컨텐츠를 감상할 수 없습니다."를 출력
		if(myage <= 19) {
			System.out.println("넷플릭스 성인 컨텐츠를 감상할 수 없습니다.");
		}
		
	}

}
package condition;

public class Main02 {

	public static void main(String[] args) {
		int point = 70;
		
		// 1. point 70점 초과이고, 80점 이하이면 "C학점 입니다."
		// 경계값 테스트 중요
		if(point > 70 && point <= 80) {
			System.out.println("C학점 입니다.");
		}
		
		// 2. point가 70점 이하 또는 80점 초과이면 "범위를 벗어났습니다."
		if(point <= 70 || point > 80) {
			System.out.println("범위를 벗어났습니다.");
		}
	}

}
package condition;

public class Main03 {

	public static void main(String[] args) {
		boolean is_korean = false;
		
		if( is_korean == true) {
			System.out.println("한국 사람 입니다.");	
		} else {
			System.out.println("한국 사람이 아닙니다.");
		}
	}

}
package condition;

public class Main04 {

	public static void main(String[] args) {
		int point = 90;
		
		//만약 point가 90점 초과이고, point가 100점 이하라면 -> "A"
		//만약 point가 80점 초과이고, point가 90점 이하라면 -> "B"
		//만약 point가 70점 초과이고, point가 100점 이하라면 -> "C"
		// 나머지 -> "F"
		
		if(point > 90 && point <= 100) {
			System.out.println("A");
		}
		else if(point > 80 && point <= 90) {
			System.out.println("B");
		}
		else if(point > 70 && point <= 80) {
			System.out.println("C");
		}		
		else {
			System.out.println("F");
		}
	}

}
package condition;

public class Main05 {

	public static void main(String[] args) {
		char grade = 'G';
		
		switch (grade) {
			case 'A' : 
				System.out.println("91~100점 사이 입니다.");
				break;
			case 'B' : 
				System.out.println("81~90점 사이 입니다.");
				break;
			case 'C' : 
				System.out.println("71~80점 사이 입니다.");
				break;
			default : 
				System.out.println("70점 이하입니다.");
				break;
		}
	}

}
package condition;

public class Main06 {

	public static void main(String[] args) {
		char grade = 'A';
		
		switch (grade) {
			case 'A' : 
				System.out.println("91~100점 사이 입니다.");
				// break;
			case 'B' : 
				System.out.println("81~90점 사이 입니다.");
				// break;
			case 'C' : 
				System.out.println("71~80점 사이 입니다.");
				// break;
			default : 
				System.out.println("70점 이하입니다.");
				// break;
		}
	}

}
package condition;

public class Main07 {

	public static void main(String[] args) {
		char grade = 'D';
		
		// switch case문을 사용해서 grade가 A, B, C일 떄는 "Pass" 출력,
		//그렇지 않다면 "Not-Pass"를 출력하라
		
		switch (grade) {
		case 'A', 'B', 'C' : 
			System.out.println("Pass");
			break;
		default : 
			System.out.println("Not-Pass");
			break;
		}
		
		/* 다른 방법
		 * switch (grade) {
		 * 	case 'A' :
		 * 	case 'B' :
		 * 	case 'C' :
		 * 		System.out.println("Pass");
				break;
			default : 
				System.out.println("Not-Pass");
				break;
		 * }
		 */
	}

}

0개의 댓글