♦ 자바의 분기문
분기문은 특정 조건에 따라서 특정 문장을 실행하도록 제어하는 것으로 단일 if 문, if else 문, 다중 if else 문, switch 문이 있다.
단일 if 문
주어진 조건을 만족하는 경우 특정 문장을 실행하도록 제어하는 문이다.
public class Test01 { public static void main(String[] args) { int n = 10; if( n == 10 ){ System.out.println("n은 10이다."); } } }
if else 문
if else 문은 두가지 문장 중에서 조건에 따라 하나만 실행시키고자 할 때 사용한다.
public class Test01 { public static void main(String[] args) { int n = 10; if( n > 20 ){ System.out.println(" n은 20보다 크다 "); //true 일때 실행 }else{ System.out.println(" n은 20보다 작다"); // false 일때 실행 } } }
다중 if else 문
if else 문을 여러번 사용하는 문이며 두자기 이상의 조건식을 가질 수 있다.
if(조건식1){ 문장1; } else if(조건식2){ 문장2; } else if(조건식3){ 문장3; } else { 문장n; }
조건식1이 true 이면 문장 1을 실행
조건식1이 false 인 경우 조건식 2를 검사
조건식2가 true 이면 문장 2을 실행
조건식2가 false 인 경우 조건식 3을 검사
조건식3이 true 이면 문장 3을 실행
조건식3이 false 인 경우 문장 n을 실행
public class Test01 { public static void main(String[] args) { int score = 80; char grade; if( score >= 90 ){ grade = 'A'; }else if(score >= 80){ grade = 'B'; }else if(score >= 70){ grade = 'C'; }else if(score >= 60){ grade = 'D'; }else{ grade = 'F'; } System.err.println("학점은 " + grade); } }
switch 문
switch 문은 if else 문과 같은 용도로 사용한다.
switch(정수식){ case 값1 : 문장1; break; case 값2 : 문장2; break; ... case 값n : 문장n; break; default: 문장n+1; }
switch 문은 정수식과 일치하는 값을 가진 case 문을 실행한다. 정수식에서 지정 가능한 데이터형은 정수형이며 4가지만 가능하다.
byte, short, int, char
case 문의 값은 각각 달라야 하며 값의 크기와 순서는 무관하다. 정수식에는 변수, 리터럴이 올 수 있으나 case 값에는 리터럴만 올 수 있다. 일치하는 case 문이 없을 때에는 default 문이 실행되고 break 문을 만나면 switch 문을 빠져나온다. break, default 는 생략 가능하다.
*리터럴 : 자바언어가 처리하는 실제 데이터
public class Test01 { public static void main(String[] args) { int score = 80; char grade; switch( score / 10){ case 10: grade = 'A'; break; case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; default: grade = 'F'; }//end switch System.out.println("학점은 "+ grade); } }