본문 바로가기
Java

Java - 조건문, 반복문

by icblue21 2022. 11. 17.
728x90

조건문

조건문이란?

  • 주어진 조건에 따라 다른 실행이 이루어 지도록 구현하는 문법

if문 문법

if(조건식){
  수행문;      // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 수행됨 
 }             // 조건식이 '참'이 아니면(조건에 맞지 않는 경우) 수행문이 수행되지 않음

if - else문 문법

if( 조건식) {

    수행문1;   // 조건식이 '참'인 경우에 수행됨
}
else{
    수행문2;    // 조건식이 '참'이 아닌 경우에 수행됨
}

if-else if-else문 문법

  if(조건식1){
      수행문1;        // 조건식1이 '참'인 경우 수행하고 전체 조건문을 빠져나감
  }
  else if(조건식2){
      수행문2;        // 조건식2이 '참'인 경우 수행하고 전체 조건문을 빠져나감
  }
  else if(조건식3){
      수행문3;        // 조건식3이 '참'인 경우 수행하고 전체 조건문을 빠져나감
  }
  else{
      수행문4;        // 위 조건이 모두 해당되지 않는 경우 수행됨 (디폴트 조건)
  }

  수행문5;            // if-else if-else 문이 끝나면 수행됨

  가령 조건식2가 만족되면 수행문2 -> 수행문5  순으로 수행됨

if-else if 문과 if - if 문의 차이점

  • if- else if 를 사용하는 경우 하나의 조건이 만족 되면 나머지 else if 부분은 수행되지 않는다.
  • if - if 로 사용하게 되면 각각 다른 조건 문으로 해석되어 각각 수행하게 된다.

switch-case 문

  • if - else if - else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 좋게 구현할 수 있다.
  • 비교 조건이 특정 값이나 문자열인 경우 사용한다.
  • break 문을 사용하여 각 조건이 만족되면 switch 블럭을 빠져나오도록 해야 한다.
간단한 switch-case문 예제

public class SwitchCaseTest {

	public static void main(String[] args) {

		int month = 10;
		int day;
		
		switch(month){
		
			case 1: case 3: case 5: case 7: case 8: case 10: case 12:
				day = 31;
				break;
			case 4: case 6: case 9: case 11:
				day = 30;
				break;
			case 2: 
				day = 28;
				break;
			default:
				day = 0;
				System.out.println("존재하지 않는 달 입니다.");
			
		}
		System.out.println(month + "월은 " + day + "일입니다.");
	}
}

반복문

while문

  • 주어진 조건에 맞는 동안(true) 지정된 수행문을 반복적으로 수행하는 제어문
  • 조건이 맞지 않으면 반복하던 수행을 멈춘다.
  • 조건은 주로 반복 횟수나 값의 비교의 결과에 따라 true, false로 판단 한다.
  • 예) 달리는 자동차, 일정 횟수 만큼 돌아가는 나사못, 특정 온도까지 가동되는 에어컨등

do-while문

  • 조건과 상관 없이 한번은 수행문을 수행하고 지정된 수행문을 반복적으로 수행하는 제어문
  • 조건이 맞지 않으면 반복하던 수행을 멈춘다.

for문

  • 초기화식, 조건식, 증감식, 수행문으로 구성되어 있는 제어문
for(초기화식; 조건식; 증감식){
	수행문;
    ...
}

간단한 예제

for(int i=0; i<10; i++){
	System.out.println(i); // 0~9까지 출력
}

/* 이미 이전에 값이 초기화되어 for 내부에서 값을 
초기화 할 필요가 없는 경우 초기화식 생략이 가능하다. */
for(; i<5; i++){ 
	수행문;
    ...
}

/* 반복 수행에 대한 조건이 수행문 내부에 있는 경우
조건식 생략이 가능하다. */
for(int i=0; ; i++){
	sum += i;
    if( i > 10 ) break;
}

/* 증감식에 대한 연산이 복잡하거나 다른 변수의 연산 결과값에 결정되는 경우
증감식 생략이 가능하다.*/

for(int i=0; i <10; ){
	...
    i = (++i)%10;
}


// 무한 반복
for( ; ; ){
	...
}

각 반복문은 언제 주로 사용하는가?

while

  • 조건식의 결과나 변수가 true,false 값인 경우 주로 사용

do-while

  • while과 같으나 수행문을 먼저 수행하고 조건을 체크하고 싶은 경우 사용

for

  • 특정 수의 범위, 횟수와 관련하여 반복되는 경우 주로 사용
  • 배열과 많이 사용됨

break, continue 문

break

  • 감싸고 있는 제어문의 블록을 빠져 나오는 기능 (switch문 에서도 사용)
  • 반복문에서는 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동한다.
  • 여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나온다.
for(int i=0; i<10; i++){
	if( i == 5 ) {
    	System.out.println(i); // i가 5일 때 i를 출력하고 반복문을 빠져나옴
        break;
    }
}

continue 문

  • 반복문 내부에서 조건문(if)와 같이 사용하며, 조건이 맞는 경우(true 이면) 이후 반복문 블럭 내부의 다른 수행문들을 수행하지 않는다.
for( int i=0; i< 10; i++){
	if( i % 2 == 0 ) continue;
    System.out.println(i); // 0~9 중 홀수만 출력
}
 

'Java' 카테고리의 다른 글

Java - 상속  (0) 2022.11.17
Java - 객체지향 프로그래밍 기초 2  (0) 2022.11.17
Java - 객체지향 프로그래밍 기초 1  (0) 2022.11.17
Java - 자료형, 연산자  (0) 2022.11.17
Java - 프로그래밍 기초  (0) 2022.11.17

댓글