무조건 실행되는 것이 아니라, 특정 조건을 충족할 경우에만 실행되는 구문
- if문
: 주어진 '조건'이 참(true)일 경우에만 실행된다.- if ~ else 문
: 주어진 조건이 참(true)일 경우 if문이 실행되고,
그렇지 않을 경우 else 문이 실행 된다.- if ~ else if ~ else 문
: 조건을 여러개로 세분화하여 사용하는 if문이다.- switch문
: 하나의 '값'에 대하여 여러가지 경우의 수로 나누어 분기한다.
- if문은 주어진 조건이 참 일 경우에 지정된 구문이 실행된다
- if문 예제
int myage = 20; if( myage == 19 ){ System.out.println("19살 입니다."); } if( myage != 20 ) { System.out.println("20살이 아닙니다."); } if( myage > 19 ) { System.out.println("성인입니다."); } if( myage <= 19 ) { System.out.println("학생입니다."); }
int point = 85; /* * point 가 70보다 크고, 80이하이면 "C학점 입니다."를 출력, * point 가 70이하 또는 80보다 크면 "범위를 벗어났습니다." */ // AND(&&) -> 두 조건이 모두 참이어야 전체가 참 if( point > 70 && point <= 80 ) { System.out.println("C학점 입니다."); } // OR(||) -> 두 조건중 하나라도 참이면 전체가 참 if( point <= 70 || point > 80 ) { System.out.println("범위를 벗어났습니다."); }
- 그렇지 않으면?
- if문이 조건이 참일 경우에 실행되는 구문이라면, if문이 조건과 반대되는 경우에 실행되고
구문이 else 문이다.- else 문은 독립적으로 실행될 수 없고, 반드시 if문의 뒤에 위치해야 한다.
- if ~ else문 예제
boolean is_korean = true; if( is_korean ) { System.out.println("한국사람 입니다."); } else { System.out.println("한국 사람이 아닙니다."); }
/* * 문제2. 만약 돈이 3000원 이상 있거나, 카드가 있다면 택시를 타고 그렇지 않으면 걸어가라. */ int money2 = 2000; boolean hasCard = true; if( money2 >= 3000 || hasCard ) { System.out.println("택시를 타고가라"); } else { System.out.println("걸어가라"); }
- 여러 가지 경우의 수를 분기
- if 문과 else 문 사이에 else if 문으로 두 번째 조건, 세번째 조건을 나열할 수 있다.
- else if 문은 필요한 만큼 나열할 수 있으며, 필요치 않은 경우 else 문은 생략 가능하다.
- if ~ else if ~ else문 예제
int point = 90; 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"); }
- 문제5-1. 국어, 영어, 수학 점수의 평균이 95점 이상이면 장학색을 출력하여라.
- 문제5-2. 국어점수가 70점 이상이면 "국어 합격" 그렇지 않으면 "국어 불합격"을 출력하여라
- 문제5-3. 수학점수가 90점 이상이면 "A학점", 80점 이상이면 "B학점", 70점 이상이면 "C학점",
- 60점 이상이면 "D학점", 나머지 "F학점"을 출력
// 문제 풀이 int kor = 100, eng = 100, mat = 89; double avg = (kor + eng + mat)/3; // 5-1. 풀이 if( avg >= 95 ) { System.out.println("장학생"); } // 5-2. 풀이 if( kor >= 70 ) { System.out.println("국어 합격"); } else { System.out.println("국어 불합격"); } // 5-3. 풀이 if( mat >= 90 ) { System.out.println("수학 : A학점"); } else if( mat >= 80 ) { System.out.println("수학 : B학점"); } else { System.out.println("수학 : F학점"); }
- 변수 값에 대한 경우의 수를 처리하는 switch문
- switch문은 하나의 변수(기준값)에 대한 여러가지 case를 정의하는 구문이다.
- if문은 조건식(비교식, 부등식)이 사용될 수 있지만, switch문은 분기 조건이 반드시 일치하는
"값"에 대해서만 처리 가능하다.- switch문 예제
char grade = 'F'; 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; }
// char grade 선언, A,B,C가 있다. // A or B or C : "Pass" 1번 출력 // A, B, C를 제외한 다른 등급이 올 경우, "Not-Pass" 1번 출력 char grade = 'D'; switch (grade) { case 'A': case 'B': case 'C': System.out.println("Pass"); break; default: System.out.println("Not-Pass"); break; }
- 숫자가 3이면 "안녕"이 세줄, 숫자가 2이면 "안녕"이 두줄, 숫자가 1이면 "안녕"이 한줄,그 외는 "잘가"를 출력
int num2 = 5; switch (num2) { case 3: System.out.println("안녕"); case 2: System.out.println("안녕"); case 1: System.out.println("안녕"); break; default: System.out.println("잘가"); break; }