[11일차] 16. 조건이 여러 개 일 때 간단히 표현되는 switch-case문 / 17. 반복문 - while문 / 18. 반복문 - do-while문

WOOJEON JANG·2022년 1월 6일
0

Part01. 자바 프로그래밍

ch 01. 자바 기초

<16. 조건이 여러 개 일 때 간단히 표현되는 switch-case문>


<switch-case문>

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

<한달이 며칠인지 알려주는 프로그램 구현>

  • 예제

    스위치 케이스로 일일이 1~12월을 입력해서 작성한 예제
    위 예제를 31일끼리 묶어서 정리하면 아래와 같다.

    30일에 해당하는 월들도 묶었다.

<문자열 지원되는 switch-case문>

  • 위 경우와 유사하여 예제실습 없이 넘어감.
package ch16;

public class SwitchCaseTest2 {

	public static void main(String[] args) {
		String medal = "Gold";
		
		switch(medal) {
		
			case "Gold":
				System.out.println("금메달 입니다.");
				break;
			case "Silver":
				System.out.println("은메달 입니다.");
				break;
			case "Bronze":
				System.out.println("동메달 입니다.");
				break;
			default:
				System.out.println("메달이 없습니다.");
				break;
		}

	}
}

<JAVA 14 부터 지원되는 switch expression>

  • 간단하게 쉼표(,)로 조건 구분
  • 식으로 표현하여 반환 값을 받을 수 있음. 리턴 값이 없는 경우는 오류가 생김
  • yield 키워드 사용

위 상태에서 day 값을 받을 수 있도록 수정하면 아래와 같다.

오늘의 공부 소감(16.) :
자바11 버전으로 작업하다가 14버전 설치 후 이클립스에 적용하는데 처음해보는 변경이라 애를 먹었다.. 그러나 해결함. 14부터 적용되는 따옴표, 반환값 같은 것들이 파이썬과 유사한 것 같다.. 왜 파이썬이 초보들에게 공부하기 편하다고 하는지 알 것 같다.



<17. 반복문 - while문>


<조건이 참(true)인 동안 반복 수행하기>

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

<while문>

  • 수행문을 수행하기 전 조건을 체크하고 그 조건의 결과가 true인 동안 반복 수행

<while문 예제>

  • 1부터 10까지 더하여 그 결과를 출력하기
package ch17;

public class WhileTest {

	public static void main(String[] args) {
		
		int num = 1; //초기값 설정
		int sum = 0; //초기값 설정
		
		while(num <=10) { //num이 10보다 작거나 같아질 때 까지
			sum += num; // sum에 num을 더해서 sum에 대입해라
			num++; // num은 1씩 증가한다
		}
		System.out.println(sum); //sum에 1씩 증가하는 수를 더한다. 0+1+2+3...+10 = 55가 나온다
		System.out.println(num); //1부터 1씩 늘어서 10보다 커지는 순간 즉, 11이 되는 순간 바로 while문 조건에 맞지 않기때문에 벗어나게 되고 11이 출력된다.
	}

}

오늘의 공부 소감(17.) :
while문을 이해하는데 상당히 재미를 느꼈다. 응용해보고 싶다...



<18. 반복문 do-while문>


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

  • while문은 조건을 먼저 체크하고 반복이 수행된다면, do-while은 조건과 상관 없이 수행을 한 번 하고나서 조건을 체크

  • 조건이 맞지 않으면(true가 아니면) 더 이상 수행하지 않음

<do-while 예제>

  • 입력받는 모든 숫자의 합을 구하는 예제 단, 입력이 0이 되면 반복을 그만하고 합을 출력
  • 우선 while문으로 만든 예제는 아래와 같다
package ch18;

import java.util.Scanner;

public class DoWhileTest {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		int input;
		int sum = 0;
		
		input = scanner.nextInt(); //우선 값을 입력 받음
		
		while( input != 0) { //입력이 0이 아닐때 까지만 while블록 안의 내용을 수행함
			
			sum += input; //입력값을 sum에 더해나감
			input = scanner.nextInt(); //다시 입력받음 -> 바로 위단계로 다시 시작 0이 나오기 전까진 무한반복
		}
		
		System.out.println(sum);
	}

}
  • 위 예제를 do-while문으로 바꾸면 아래와 같다
package ch18;

import java.util.Scanner;

public class DoWhileTest2 {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		int input;
		int sum = 0;
		
		do {
			input = scanner.nextInt(); //우선 입력받고
			sum += input; // 입력값을 sum에 더한다.
			
		}while(input !=0); //입력값이 0이면 그만 둬라.
	
		System.out.println(sum);
	}

}

오늘의 공부 소감(18.) :
while 문으로 사용하는 경우와 do-while문으로 사용하는 경우가 아직 100% 완벽하게 이해되진 않는다.. 진도를 나가면서 알게 될까

profile
back-end enginneer

0개의 댓글