조건문 : if와 switch문이 있다.
if( 조건식 ){
실행문 A //조건식이 true이면 실행
}
실행문 B //조건식이 false이면 실행
ex) 중괄호가 없는 예제
public class Ch04_1 {
public static void main(String[] args) {
int score = 93;
if(score>=90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A 입니다.");
}//중괄호는 if문의 범위 - 두줄 다 실행함
if(score< 90) //if문은 중괄호가 없으면 밑에 한줄까지만 확인함
System.out.println("점수가 90보다 작습니다.");
System.out.println("등급은 B 입니다.");
}
}
ex) 중괄호 있는 예제
public class Ch04_IfElseExample {
public static void main(String[] args) {
int score = 85;
if(score>=90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A 입니다.");
} else {
System.out.println("점수가 90보다 작습니다.");
System.out.println("등급은 B 입니다.");
}
}
}
ex) if else if else 예제
public class IfElseIfElseExample {
public static void main(String[] args) {
int score = 75;
if(score>=90) {
System.out.println("점수가 100~90 입니다.");
System.out.println("등급은 A 입니다.");
} else if(score>=80) {
System.out.println("점수가 80~89 입니다.");
System.out.println("등급은 B 입니다.");
} else if(score>=70) {
System.out.println("점수가 70~79 입니다.");
System.out.println("등급은 C 입니다.");
} else {
System.out.println("점수가 70 미만 입니다.");
System.out.println("등급은 D 입니다.");
}
}
}
ex) ifDiceExample 예제
java.lang.Math에 위치한 랜덤함수 호출하는 메서드
(클래스 Math에는 기본 지수, 로그, 제곱근 및 삼각 함수와 같은 기본 숫자 연산을 수행하는 방법이 포함되어 있습니다.)
public class IfDiceExample {
public static void main(String[] args) {
int num = (int)(Math.random() * 6) + 1; //int 타입으로 형변환을하고 범위는 ~6까지 지정 후 1을 더해줌(0단위가 안나오게끔)
System.out.println(Math.random() * 6); //int 타입으로 안하면 실수값이 출력됨
if(num==1) {
System.out.println("1번이 나왔습니다.");
} else if(num==2) {
System.out.println("2번이 나왔습니다.");
} else if(num==3) {
System.out.println("3번이 나왔습니다.");
} else if(num==4) {
System.out.println("4번이 나왔습니다.");
} else if(num==5) {
System.out.println("5번이 나왔습니다.");
} else {
System.out.println("6번이 나왔습니다.");
}
}
}
switch문은 괄호 안의 변수 값과 동일한 값을 갖는 case로 가서 실행문을 실행한다.
만약 괄호의 변수 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행한다.
Switch(변수){
case :
출력할 내용
break;
case :
출력할 내용
break;
}
ex) SwitchExample
public class SwitchExample {
public static void main(String[] args) {
int num = (int)(Math.random()*6) + 1;
switch(num) {
case 1:
System.out.println("1번이 나왔습니다.");
break;
case 2:
System.out.println("2번이 나왔습니다.");
break;
case 3:
System.out.println("3번이 나왔습니다.");
break;
case 4:
System.out.println("4번이 나왔습니다.");
break;
case 5:
System.out.println("5번이 나왔습니다.");
break;
default:
System.out.println("6번이 나왔습니다.");
break;
}
}
}
랜덤함수라 실행할때마다 값이 매번 바뀜
위 예제에서 만약 break문을 안주게 되면 1번값이 나왔을때 1번 아래 값을 전부 받기때문에 아래와 같이 출력됨.
ex)SwitchNoBreakCaseExample
public class Ch04_6_SwitchNoBreakCaseExample {
public static void main(String[] args) {
//8<= … < 12(8+4) 사이의 정수 얻기
int time = (int)(Math.random()*4) + 8; // 8<= ... <=11 사이의 정수 뽑기
System.out.println("[현재시간: " + time + " 시]");
switch(time) {
case 8:
System.out.println("출근합니다.");
case 9:
System.out.println("회의를 합니다.");
case 10:
System.out.println("업무를 봅니다.");
default:
System.out.println("외근을 나갑니다.");
}
}
}
break가 없기 때문에 아래의 출력이 차례대로 출력됨.
char 타입 변수를 이용해서 알파벳 대소문자에 관계없이 동일하게 처리되도록 switch로 만든 예제
ex) SwitchCharExample
public class Ch04_7_SwitchCharExample {
public static void main(String[] args) {
char grade = 'B';
switch(grade) {
case 'A':
case 'a':
System.out.println("우수 회원입니다.");
break;
case 'B':
case 'b':
System.out.println("일반 회원입니다.");
break;
default:
System.out.println("손님입니다.");
}
}
}
public class Ch04_8_SwitchStringExample {
public static void main(String[] args) {
String position = "과장";
switch(position) {
case "부장":
System.out.println("700만원");
break;
case "과장":
System.out.println("500만원");
break;
default:
System.out.println("300만원");
}
}
}
끝.