조건문은 조건식에 따라 다른 실행문을 실행하기 위해 사용된다. 조건문의 종류로는 if문과 switch문이 있다.
문법 : if(조건식) { 조건식의 결과가 참일 때 실행하고자 하는 명령문; }
조건식이 true면 블록 내부(중괄호 안)을 실행하고 false면 블록을 실행하지 않는다.
if(ch>='a'&& ch<='z') {
System.out.println("해당 문자는 영문 소문자입니다.");
//출력 값 : 해당 문자는 영문 소문자입니다.
}
if 문과 함께 사용하는 else 문은 if 문과는 반대로 주어진 조건식의 결과가 거짓(false)이면 주어진 명령문을 실행한다.
if(조건식) {
조건식의 결과가 참일 때 실행하고자 하는 명령문;
} else {
조건식의 결과가 거짓일 때 실행하고자 하는 명령문;
}
if(score>=90) {
System.out.println("A:점수가 90보다 큽니다.");
} else { //score<90인 경우
System.out.println("B:점수가 90보다 작습니다.");
}
조건식을 여러개 명시할 수 있어 중첩된 if문을 간결하게 표현할 수 있다.
else if문은 여러번 작성해도 되지만 if문과 else문은 딱 한번만 작성할 수 있다.
if(조건식1) {
조건식1의 결과가 참일 때 실행하고자 하는 명령문;
} else if(조건식2) {
조건식2의 결과가 참일 때 실행하고자 하는 명령문;
} else {
조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 명령문;
}
if(score>=90) {
System.out.println("점수가 90~100점 입니다.");
} else if(score>=80) {
System.out.println("점수가 80~89점 입니다.");
} else if(score>=70) {
System.out.println("점수가 70~79점 입니다.");
} else{ //score<70
System.out.println("점수가 70점 미만입니다.");
}
int num =(int) (Math.random() * 45)+1;
//주사위 번호 뽑기
public class IfDiceExample{
public static void main(String[] args) {
//주사위 번호 하나 뽑기
int num=(int)(Math.random()*6)+1;
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 if(num==6) {
System.out.println("6번이 나왔습니다."); }
}
}
삼항 연산자(ternary operator) : 자바에서 유일하게 피연산자를 3개 가지는 조건 연산자
문법 :
조건식? 반환값1:반환값2
조건식에 따라 결과값이 참이면 반환값1을 반환,
결과값이 거짓이면 반환값2를 반환함
switch문은 if문과 마찬가지로 조건 제어문이다.
주어진 조건값의 결과에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문
switch(변수){ case 값1: ...; break; case 값2: ...; break; default: ...; break; }
변수의 값이 값1인 경우 첫번째 case코드를 실행하고 값2인 경우에는 두번째 case를 실행한다.
switch문에서 사용할 수 있는 변수의 타입 : int 범위 이하의 정수, 문자, String만 가능
=> char, byte, short, int, String (5개)
default : 둘 다 해당되지 않는 경우 default 코드를 실행한다. default 절은 반드시 존재해야 하는 것은 아니며 필요할 때만 선언 가능하다. (생략가능)
break : 각 case나 default절은 반드시 break를 포함하고 있어야 한다. break는 조건값에 해당하는 case절이나 default절이 실행된 뒤 switch문을 빠져나가게 해준다. break가 없는 경우 멈추지 않고 전부 실행해 해당되지 않는 값도 모두 출력하게 된다.
//String 타입의 switch문
String position = "과장";
switch(position){
case "부장":
System.out.println("700만원");
break;
case "과장":
System.out.println("500만원");
break;
default:
System.out.println("300만원");
break;
} //출력값 : 500만원
if는 조건식이 true일 경우 블록 내부가 실행되고 switch는 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다. switch는 변수의 값에 따라 실행문이 결정되기 때문에 코드가 간결해 가독성이 좋다. 컴파일러가 최적화를 쉽게 할 수 있어 속도가 빠르다. switch문은 if-else문보다 사용할 수 있는 상황이 적다.