제어문(flow control statement) - 조건문과 반복문

 

✔ 조건문

: 조건을 만족할 때만 {}를 수행 (0~1번)

: if, switch

 

✔ 반복문

: 조건을 만족하는 동안 {}를 수행 (0~n번)

:for, while

 


✔ if문

: 조건식이 '참'일때 괄호 안의 문장 수행

if (조건식) {
	//조건식이 참 일때 수행될 문장
}

문자 ch가 공백이거나 탭 또는 개행문자일때

👉 ch== ' ' || ch == '\tap' || ch == '\n'

 

문자 ch가 숫자일 때

👉 '0' <= ch && ch <= '9'

 

문자열 str의 내용이 "yes"일 때 (대소문자 구분)

👉 str.equals("yes")  // str은 == 가 아니라 str.equals() 를 쓴다.

 

문자열 str의 내용이 "yes"일 때 (대소문자 구분안함)

👉 str.equals.IgnoreCase("yes") // IgnoreCase 대소문자 무시

 


✔ 블럭 { }

: 여러 문장을 하나로 묶어주는 것

: 코드의 가독성을 높이기 위해서 블럭 내부 문장은 들여쓰기.

: if문에 속한 조건이 하나인경우 블럭을 생략할 수 있음.

if (score>60)
	System.out.println("합격입니다") // if문에 속한 문장
    System.out.println("불합격입니다") // if문에 속한 문장이 아님 (블럭이 없어서 윗줄만 해당됨)

 


✔ if~else문

: 둘 중의 하나 - 조건식이 참일때와 거짓일 때로 나눠서 처리

if (조건식) {
	// 조건식이 참일때 수행할 문장
} else {
	// 조건식이 거짓일 때 수행할 문장
}

✔ if~else if 문 (전체가 한 묶음이므로 만족하는 하나의 조건만 실행후 종료. 모두 실행될 수 없음)

: 여러개 중의 하나 - 여러개의 조건식을 포함한 조건식

if (조건식1) {
	// 조건식 1의 결과가 참일때
} else if (조건식 2) {
	// 조건식 2의 결과가 참일때
} else if (조건식 3) {
	// 조건식 3의 결과가 참일때
} else { // 마지막은 보통 else 블럭으로 끝나며, else 블럭은 생략가능
	// 위의 어느 조건식도 만족하지 않을 때 수행될 문장.
}

✔ 중첩 if문 

: if문 안의 if문

if (조건식1) {
	// 조건식 1의 연산결과가 true일때 수행될 문장
    if (조건식2) {
    	// 조건식 1,2가 모두 true일때 수행될 문장
    } else {
    	// 조건식 1 true, 2 false일때 수행될 문장
    }
} else {
	// 조건식 1이 false일때 수행될 문장
}

 


✔ switch문

: 처리해야 하는 경우의 수가 많을때 유용한 조건문

switch (조건식) {
	case 값1 :
    	// 조건식 결과가 값1과 같을경우 수행될 문장
       		break;  //  switch문을 벗어난다
	case 값2 :
    	// 조건식 결과가 값2와 같을경우 수행될 문장
        	break;
	default;
    	// 조건식의 결과와 일치하는 switch 문이 없을때 수행될 문장
}

① 조건식을 계산한다 (if와 같이 논리값이 아닌 결과값이 있는 계산)

② 조건식의 결과와 일치하는 case문으로 이동

③ 문장 수행

④ break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다.

 

 

✔ switch문의 제약조건

① switch문의 조건식 결과는 정수나 문자열이어야 한다.

② case문의 값은 정수, 상수 (문자포함), 문자열만 가능하며 중복되지 않아야 한다. (* 변수는 불가)

 

switch (result) {

case '1' :           //  문자 리터럴. (정수 49와 동일)

case ONE :     //  정수 상수

case "yes" :  //  문자열 리터럴 (JDK 1.7~)

case num :  //  ERROR 변수 불가

case 1.0:     //  ERROR 실수 불가

 

따라서 switch → if else로는 변환 가능

if else → switch는 제약이 있음

 

 


 

 

+ Recent posts