본문 바로가기
백엔드/Java

[Java] 4. 제어문(조건문과 반복문)에서 주의할 점

by BGwon_C 2023. 7. 31.

제어문

조건문

  • If문
  • switch문 :
    • 제약조건 : 1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
                       2. case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다.
public static void main(String[] args) {
		int num, result;
		final int ONE = 1;
		
		switch(result) {
			case '1' :     // OK. 문자 리터럴 (정수 49와 동일)
			case ONE :     // OK. 정수 상수(final)
			case "YES" :   // OK. 문자열 리터럴. JDK 1.7부터 허용
			case num :     // X, 변수는 불가
			case 1.0 :     // X, 실수도 불가
		}
	}

반복문

  • for문 :
    • for(int i=1, j-0; i<=10; i++) -> 둘 이상의 변수 초기화 가능, 콤마로 구분하며, 두 변수의 타입이 같아야 한다.
    • for(int i=1, j=10; i<=10; i+=, j--) -> 증감식도 콤라를 사용해 두 문장 이상을 하나로 연결해서 쓸 수 있다.
    • for( ; ; ) -> 초기화, 조건식, 증감식 모두 생략 가능. 조건식이 생략된 경우, True로 간주되어 무한 반복문이 된다.
                       대신 이런 경우 블럭{} 안에 if문을 넣어서 특정 조건을 만족하면 for문을 빠져 나오게 해야 한다.
  • while문
    • do-while
    • break문
    • continue문
    • 이름 붙은 반복문

 

분기문(break문, continue문)

break문 :

  • 반복문(while문, for문), switch문에 사용 가능
  • if 안에 break 사용 불가(밖에 for문이나 switch문이 있어야함)

continue문 : 

  • 반복문(while문, for문) 내에서만 사용 가능
  • if 안에 break 사용 불가(밖에 for문이나 switch문이 있어야함)

 

* 참고) break문은 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 중첩 반복문 시에는 중첩 반복문 앞에 이름을 붙이고  break문과 continue문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복문을 번너 뛸 수 있다.

package student.dto;

public class Practice {

	public static void main(String[] args) {
		// for문제 Loop1이라는 이름을 붙여줌
		Loop1 : for(int i=2; i<=9; i++) {
			for(int j=1; j<=9; j++) {
				if(j == 5)
					break Loop1;         // 2단*5일시 더이상 수행하지 않고 몯느 for문을 종료 (2 * 1~4만 수행)
					//break;             // 2단*5일시 더이상 계산하지 않고 Loop1로 빠져나가서 3단 구구단을 수행 (i * 1~4만 수행)
					//continue Loop1;    // 2단*5 일시 더이상 계산하지 않고 Loop1로 빠져나가서 3단 구구단을 수행 (i * 1~4만 수행)
					//continue;          // 2단*5 일시 이 계산만 무시하고 2단*6으로 넘어가서 2단 구구단 마저 수행 (i * 1~4, i * 6~9 수행)
					System.out.println(i + "*" + j + "=" + i*j);
			} // 안쪽 for문
		} // 바깥 for문(Loop1)
	}
}

위의 코드예시처럼, 반복문의 이름이 지정되지 않은 break문은자신이 속한 하나의 반복문만 벗어날 수 있지만, 반복문에 이름을 붙여 주고 break문에 반복문 이름을 지정해주면 하나 이상의 반복문도 벗어날 수 있다.

 

 

댓글