조건문과 반복문(if, switch, for, while statement)

4328 단어 JavaJava

출처 : 자바의 정석
http://www.yes24.com/Product/Goods/24259565
https://cafe.naver.com/javachobostudy/20665

아래의 내용은 '자바의 정석'이라는 책의 내용을 간략하게 정리한 글입니다.

조건문과 반복문(if, switch, for, while statement)

조건에 따라 다르게 수행되어야 할 문장이나 특정 문장을 반복해야 할 때 사용하는 문법

1. 조건문 - if, switch

조건문은 if 문과 switch 문 두 가지가 있으며 처리할 경우의 수가 많을 때 switch가 효율적이나 switch는 if문 보다 제약이 많음.

1-1. if
조건식에 따라 수행하는 문장이 다르다.

if(조건식 1){
	//조건식1 참일 경우 수행되는 문장
}else if(조건식 2) {
	//조건식 2 참일 경우 수행되는 문장
}else {
	//위 조건식들이 거짓일 경우 수행되는 문장
}

1-2. switch
조건식을 먼저 계산한 다음, 그 결과와 일치하는 case 문으로 이동한다.
break 문을 만나면 전체 switch 문을 빠져나간다.

switch(조건식){
	case 값1 :
    	//조건식의 결과값이 값1과 동일할 경우 수행되는 문장
        // ...
        break;
	case 값2 :
    	//조건식의 결과값이 값2과 동일할 경우 수행되는 문장
        // ...
        break;
    default : 
    	//조건식의 결과값이 위 case들의 값과 일치하지 않는 경우 수행되는 문장
        // ...
}

switch 문의 제약조건
1. switch 문의 조건식 결과는 정수(int 타입의 숫자들 : 1,2,3,-1,0..) 또는 문자열이어야 한다.
2. case 문의 값은 정수 상수(정수값이며 변하지 않거나 일정한 값)만 가능하며, 중복은 안 된다.

int num, result;
final int ONE = 1;

switch(result) {
	case '1':	// O 문자(정수 상수 49와 동일)
    case ONE:	// O 정수 상수
    case "YES"	// O 문자열(JDK 1.7부터 허용)
    case num:	// X 변수는 불가
    case 1.0:	// X 실수는 불가
}

2. 반복문 - for, while, do-while

for 문이나 while 문에 속한 문장은 조건에 따라 한 번도 수행되지 않을 수 있지만 do-while에 속한 문장은 무조건 최소한 한 번의 수행이 보장된다.

2-1. for

for(1.초기화; 2.조건식; 3.증감식){
	4.수행될 문장
}// 실행 순서는 1-2-4-3

향상된 for 문(enhanced for statement)
JDK 1.5부터 추가된 새로운 문법
향상된 for 문은 일반적인 for 문과 달리 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용하는 제약이 있다.

String[] str = {"test1","test2","test3","test4","test5"};

//기존 for
for(int i=0;i<str.length;i++){
	System.out.println(str[i]);
}

//향상된 for
for(String tmp : str){
	System.out.println(tmp);
}

2-2. while

while(조건식){
	//조건식이 참일 경우 반복될 문장
}

2-3. do-while

do{
	//최초일 때 한 번 수행되고 while 문의 조건식이 참일 경우 계속 수행되는 문장
}while(조건식);

2-4. break
자신이 포함된 가장 가까운 반복문을 벗어난다.

2-5. continue
반복이 진행되는 도중에 continue 문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.

2-6. 이름 붙은 반복문
break 문은 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 여러 개의 반복문이 중첩된 경우에는 break문으로 중첩 반복문을 완전히 벗어날 수 없다.
중첩 반복문 앞에 이름을 붙이고 break 문과 continue 문에 이름을 지정하여 하나 이상의 반복문을 벗어난다.

break name1;		//break name1;			//break name1;		//break name1;
//break;			break;					//break;			//break;
//continue name1;	//continue name1;		continue name1;		//continue name1;
//continue;			//continue;				//continue;			continue;

출력값 : 			출력값 : 				출력값 : 			출력값 : 
name1 out			out- i : 0				name1 out			in - i : 0, j : 1
					out- i : 1									in - i : 0, j : 2
                    out- i : 2									out- i : 0
                    name1 out									in - i : 1, j : 1
                    											in - i : 1, j : 2
                                                           		out- i : 1
                                                            	in - i : 2, j : 1
                                                            	in - i : 2, j : 2
                                                            	out- i : 2
                                                            	name1 out

기타. Math.random()
이 메서드는 0.0과 1.0사이의 범위에 속하는 하나의 double 값을 반환한다.
0.0은 범위에 포함되고 1.0은 포함되지 않는다.

0.0 < Math.random() < 1.0

(int) (Math.random()*5)+1	//1과 5사이의 랜덤 정수값 받기

좋은 웹페이지 즐겨찾기