조건문 / 반복문


if


if(조건식){
    수행문  //조건식이 true인 경우 수행문이 수행됨
}          //조건식이 false라면 수행문 수행되지 않음


if - else


if(조건식){
    조건식이 true일  수행되는 수행문
} else{
    조건식이 true가 아닐  수행되는 수행문
}


if - else if - else


if(조건식1){
    조건식1이 true일  수행하고 전체 조건문 빠져나감
} else if(조건식2){
    조건식2가 true일  수행하고 전체 조건문 빠져나감
} else{
     조건이 모두 해당되지 않는 경우 수행
}


switch - case


  • if-else if-else문을 사용할 때 복잡하고 번거로운 부분을 가독성 좋게 구현

  • 비교 조건이 특정 값이나 문자열인 경우

  • 문자열도 가능

switch (입력변수) {
	case 입력값1:
        실행문;
        break;
	case 입력값2:
        실행문;
        break;
	...
	default:
        실행문;	
        break;
        //case 모두 만족하지 않을 때 default 실행문 출력
}
//각 조건이 만족되면 break문을 사용하여 switch 블럭 빠져나옴

Enhanced Switch

- Java14부터 지원

- 쉼표(,)를 사용해 여러 조건을 한 번에 처리

- ' -> ' 또는 ' : ' 모두 사용 가능

- 반환값 'yeild' 키워드 사용, break 필요 없음

- 반환값이 없는 경우 { }블록 사용하지 않음<br>

    ex) `case 1, 3, 5, 7 -> syso("홀수입니다.")`

- ex)

    ```java
    import java.util.Scanner;

        public class SwitchTest {

            public static void main(String[] args) {
                  
                Scanner scanner = new Scanner(System.in);
                System.out.print("달을 입력하세요.");
                int month = scanner.nextInt();
                scanner.close();
                
                int day = switch (month) {
                    case 1, 3, 5, 7, 8, 10,12 -> {
                        yield 31;
                    }
                    case 4,6,9,11 -> {
                        yield 30;
                    }
                    case 2 -> {
                        yield 28;
                    }
                    default -> {
                        yield 0;
                    }
                };
                
                System.out.println(month + "월은 " + day + "일입니다.");

            }

        }
    ```


while


  • 조건이 true인 동안 반복 수행, 조건이 맞지 않으면 반복하던 수행을 멈춤

  • while은 조건식이 false가 나올 때까지 계속 반복되기 때문에 조건식을 false로 만드는 식이 실행문에 반드시 포함되어야 한다. 그렇지 않으면 무한 루프!

while(조건식){
    수행문
}


do - while


  • 조건과 상관 없이 수행을 한 번 하고나서 조건을 체크
do{
    수행문1;
} while(조건식){
    수행문2;
}


for


for(초기화식; 조건식; 증감식){
    수행문;
}
  • 초기화식, 증감식 하나 이상 쓸 수 있음
    (int i = 0 ; i < 10 ; i++, count++)

  • 초기화식, 조건식, 증감식은 상황에 따라 생략 가능

Enhanced For

for(대입받을변수:배열){
    수행문;
}
  • 배열의 n개 요소를 0부터 n-1까지(처음부터 끝까지) 순차적으로 순회할 때 간단하게 사용할 수 있음

  • 배열에서만 사용 가능

  • 배열 값 변경 불가


break


  • 감싸고 있는 제어문의 블록을 빠져 나오는 기능

  • 여러 반복문이 중첩되어 있는 경우 break문이 포함되어 있는 반복문만 빠져나옴


continue


  • 조건이 true인 경우, 이후 반복문 블럭 내부의 다른 수행문들을 수행하지 않음

  • ex) 1부터 30까지 숫자 중 3의 배수를 출력하기

      public class ContinueTest {
    
          public static void main(String[] args) {
              int num;
              for( num = 1; num <= 30; num++) {
                    
                  if( (num % 3) != 0) continue; 
                    
                  System.out.println(num);
                    
              }
          }
      }
    


중첩반복문


  • 구구단 출력하기 (for)
public class NestedLoopFor {

	public static void main(String[] args) {

		//중첩반복문 : 구구단 출력하기 (for)
		
		int dan = 2;
		int count = 1;
		
		for ( ; dan <= 9; dan++) {
			
			for (count = 1; count <= 9; count++) {
				
				System.out.println( dan + "x" + count + "=" + dan*count );
			}
			System.out.println();
		}
	}

}
  • 구구단 출력하기 (while)
public class NestedLoopWhile {

	public static void main(String[] args) {

		//중첩반복문 : 구구단 출력하기 (while)
		
		int dan = 2;
		int count = 1;
		
		while ( dan <= 9 ) {
		
			count = 1;
			while ( count <= 9 ) {
				System.out.println( dan + "x" + count + "=" + dan*count );
				count++;
			}
			dan++;
			System.out.println();
		}
	}

}

Categories:

Java