배움 __IL/TIL 0기

TIL - 각종 조건문 및 반복문 [221129]

Mo_bi!e 2022. 11. 29. 09:54

조건문 이란?

  • 주어진 조건에 따라 다른 실행이 이루어 지도록 구현
  • '재산이 1억 이상이면 100만원을 세금으로 낸다 그렇지 않으면 내지 않는다' 를 구현 한다면

 

if-else if-else 문

  • 하나의 상황에 대한 조건이 여러개로 나뉘고 각 조건에 다른 수행이 이루어져야 할 경우 사용
  • 각 조건은 상호 배타적임

switch - case 문

  • if - else if - else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 좋게 구현
  • 비교 조건이 특정 값이나 문자열인 경우 사용
  • break 문을 사용하여 각 조건이 만족되면 switch 블럭을 빠져나오도록 함
  • 자바 14부터 좀 더 간결해진 표현식이 지원 됨 ( break 사용하지 않음 )
package ch16;

public class SwitchCaseTest {

	public static void main(String[] args) {
		
		int month = 11;
		int day;
		
		switch(month) {
		
		case 1: case 3: case 5: 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 + "일 입니다. ");
		
		
//		Java 14 부터 지원 되는 Switch Expression
//
//		간단하게 쉼표(,)로 조건 구분
//
//		식으로 표현 하여 반환 값을 받을 수 있음. 리턴 값이 없는 경우는 오류가 생김
//
//		yield 키워드 사용
		
		int month2 = 3;
		
		int day2 = switch (month) {
    	case 1, 3, 5, 7, 8, 10,12 -> {
    		System.out.println("한 달은 31일입니다."); 
    		yield 31;
    	}
    	case 4,6,9,11 -> {
    		System.out.println("한 달은 30일입니다."); 
    		yield 30;
    	}
    	case 2 ->{
    		System.out.println("한 달은 28일입니다.");
    		yield 28;
    	}
    	default->{
    		System.out.println("존재하지 않는 달 입니다."); 
    		yield 0;
    	}
	};
	}
}

반복문 이란?

 

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

 

 

반복문 - do-while문

조건과 상관 없이 한번은 수행문을 수행

  • while문은 조건을 먼저 체크하고 반복 수행이 된다면, do-while은 "조건과 상관 없이" 수행을 한 번 하고나서 조건을 체크
  • 조건이 맞지 않으면(true 가 아니면) 더 이상 수행하지 않음

19. 반복문 - for 문

for문의 문장들은 생략가능 합니다.

 

반복문이 여러 번 포개진 중첩 반복문

중첩 반복문이란?

  • 반복문 내부에 또 다른 반복문이 있음
  • 여러 겹으로 반복문을 겹쳐서 구현 가능 (단 수행시간에 문제가 발생할 수 있음)

    세겹이면 O(n^3) 으로 됨

  • 외부 반복문과 내부 반복문 간의 변수 값 변화에 유의 하며 구현하여야 함
  • 구구단 구현할 때 주로 이용할 수있음

 

중간에 멈추는 break문, 무시하고 계속 진행하는 continue문

break문 사용하기

  • 감싸고 있는 제어문의 블록을 빠져 나오는 기능 (switch문 에서도 사용)
  • 반복문에서는 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동
  • 여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나옴

continue문 사용하기

  • 반복문 내부에서 조건문(if)와 같이 사용하며, 조건이 맞는 경우(true 이면) 이후 반복문 블럭 내부의 다른 수행문들을 수행하지 않음

[마무리]

< 추가적 공부 필요한 부분>

1. continue 에 대한 간단한 예제 해보기

 

 

<회고>

1

switch 나 continue 처럼 잘 사용하지 안았던 것들에 대해서 한번 눈으로 익힌 기회가 좋았던것 같다.