[JAVA] 조건문

집 가고 싶다.·2023년 12월 20일

JAVA

목록 보기
10/33
post-thumbnail

1. 조건문이란?

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

2. 조건문의 종류

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

3. if문

  • if문은 주어진 조건이 참일 경우에 지정된 구문이 실행된다.
if(조건) {
	... 실행 코드 ...
}
  • 실행할 구문이 한 줄만 있을 경우 괄호{}는 생략 가능하다

예시

public static void main(String[] args) {
	int myAge = 19;
	// myAge가 19살 이면 '19살 입니다' 출력
	if(myAge == 19) {
		System.out.println("19살 입니다.");
	}
    // myAge가 20살이 아니면 '20살이 아닙니다'출력
	if(myAge != 20) {
		System.out.println("20살이 아닙니다.");
	}
	// myAge가 19살 보다 크다면, '성인입니다.'출력
	if(myAge > 19) {
		System.out.println("성인입니다.");
	}
	// myAge가 19살 보다 작거나 같으면, '학생입니다.'출력
	if(myAge <= 19) {
		System.out.println("학생입니다.");
	}
}

4. if문의 조건식

  • 비교식(비교 연산자)
  • 논리식(논리 연산자)
  • boolean값

5. if~else 문(그렇지 않으면?)

  • if문과 else문 사이에 else if문으로 두번째 조건, 세번째 조건을 나열할 수 있다.
  • else if문은 필요한 만큼 나열할 수 있으며, 필요치 않을 경우 else문은 생략 가능하다.
if(조건1) {
	... 실행 코드 ...
} else if(조건2) {
	... 조건1과 반대일 경우 실행 코드 ...
} else if(조건3) {
	... 조건2와 반대일 경우 실행 코드 ...
} else {
	... 조건3과 반대일 경우 실행 코드 ...
}

예시

public static void main(String[] args) {
	boolean is_Korean = false;
	if(is_Korean == true) {
		System.out.println("한국사람입니다.");
	} else {
		System.out.println("한국사람이 아닙니다.");
	}
		// 값 자체가 boolean이므로 성립한다.
	if(is_Korean) {
		System.out.println("한국사람입니다.");
	} else {
		System.out.println("한국사람이 아닙니다.");
	}
	// "!"는 값을 부정한다. 참을 부정하므로 거짓이된다.
	if(!is_Korean) {
		System.out.println("한국사람이 아닙니다.");
	}
}

6. if~else if~else문

  • if문과 else문 사이에 else if문으로 두번째 조건, 세번째 조건을 나열할 수 있다.
  • else if문은 필요한 만큼 나열할 수 있으며, 필요치 않을 경우 else문은 생략 가능하다.
if(조건1) {
	... 실행 코드 ...
} else if(조건2) {
	... 조건1과 반대일 경우 실행 코드 ...
} else if(조건3) {
	... 조건2와 반대일 경우 실행 코드 ...
} else {
	... 조건3과 반대일 경우 실행 코드 ...
}

예시

import java.util.*;
public static void main(String[] args) {
	Random random = new Random();
	int Point = random.nextInt(41) + 60;
	System.out.println("Point : " + Point);
    // 90점 초과, 100점 이하 일 경우 'A'학점 출력
	if(Point > 90 && Point <= 100) {
		System.out.println("A학점 입니다");
   	// 80점 초과, 90점 이하 일 경우 'B'학점 출력
	} else if(Point > 80 && Point <= 90) {
		System.out.println("B학점 입니다");
	// 70점 초과, 80점 이하 일 경우 'C'학점 출력
	} else if(Point > 70 && Point <= 80) {
		System.out.println("C학점 입니다");
	// 나머지 F 학점
	} else {
		System.out.println("F학점 입니다");
	}
}

7. switch문

  • 변수 값에 대한 경우의 수를 처리하는 switch문
  • switch문은 하나의 변수(기준값)에 대한 여러 가지 case를 정의하는 구문
  • if문은 조건에 식(비교식, 부등식)이 사용될 수 있지만, switch문은 분기 조건이 반드시 일치하는 '값'에 대해서만 처리가 가능하다.
switch(기준값) {
case1 : 
	...실행될 구문...
	break;
case 값n :
	...실행될 구문n...
	break;
default :
	... 모든 값에 충족이 안되는 경우...
	break;
}

예시

public static void main(String[] args) {
	char Grade = 'Z';	
	switch (Grade) {
    // Grade가 'A'일 경우 '91점~100점 사이' 출력
	case 'A' :
		System.out.println("91점~100점 사이");
		break;
    // Grade가 'B'일 경우 '81점~90점 사이' 출력
	case 'B' :
		System.out.println("81점~90점 사이");
		break;
	// Grade가 'C'일 경우 '71점~80점 사이' 출력
    case 'C' :
		System.out.println("71점~80점 사이");
		break;
	// Grade가 위 3개에 해당이 안 될 경우 '70점 이하' 출력
    default :
		System.out.println("70점 이하");
		break;
	}
}

8. 삼항연산자

  • 간단한 if문을 짧게 처리하는 연산자
if() {
	...
} else if {
	...
}

(조건문)? true일떄 : false일때

예시

public static void main(String[] args) {
	int a = 0;
	if (5 < 4) {
		a = 50;
	} else {
		a = 40;
	}
	System.out.println("a : " + a);
	System.out.println("-----위 내용을 삼항연사자로 바꿈-----");		
	int b = (5 < 4) ? 50 : 40;
	System.out.println(b);
}
  • 문제
  1. Point가 70점 초과, 80점 이하이면 'c학점입니다.'출력
    Point가 70점 이하, 80점 초과이면 '범위를 벗어났습니다.'출력
  2. 90점 초과, 100점 이하 일 경우 'A'학점 출력
    80점 초과, 90점 이하 일 경우 'B'학점 출력
    70점 초과, 80점 이하 일 경우 'C'학점 출력
    나머지 F 학점
  3. 3000원 이상의 돈을 가지고 있으면 '택시를 타고 가라' 그렇지 않으면 '걸어가라'
  4. 3000원 이상이거나 카드가 있다면 '택시를 타고 가라' 그렇지 않으면 '걸어가라'
  5. 어떤 특정 정수 값 a가 짝수이면 "짝수", 홀수 이면 "홀수"
  6. 국어, 영어, 수학 점수의 평균이 95점 이상이면 '장학생'을 출력
    국어 점수가 70점 이상이면 "국어 : 합격" 그렇지 않으면 "국어 : 불합격"
  7. 수학점수가 90점 이상이면 "A", 80점 이상이면 "B", 70이상 "C", 60이상 "D", 나머지 "D"
  8. 서로 다른 특정 정수값 a,b,c의 최대값을 구하라
    a = 10, b = 20, c = 90
  9. switch문 사용
    Grade가 A 또는 B 또는 C이면 -> pass 한번 출력
    그렇지 않은 등급이면 -> Not-Pass 한번 출력
  10. switch문 사용
    1은 "축구", 2는 "농구", 3은 "야구", 4는 "배구" 이외에는 "배드민턴"이 출력
  11. 숫자가 3이면 "안녕" 3줄, 숫자가 2이면 "안녕" 2줄 숫자가 1이면 "안녕" 1줄, 이외 "잘가" 출력
profile
틀린거 있으면 알려주세요.

0개의 댓글