[11일차] 16. 조건이 여러 개 일 때 간단히 표현되는 switch-case문 / 17. 반복문 - while문 / 18. 반복문 - do-while문
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 키워드 사용
스위치 케이스로 일일이 1~12월을 입력해서 작성한 예제
위 예제를 31일끼리 묶어서 정리하면 아래와 같다.
30일에 해당하는 월들도 묶었다.
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;
}
}
}
위 상태에서 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% 완벽하게 이해되진 않는다.. 진도를 나가면서 알게 될까
Author And Source
이 문제에 관하여([11일차] 16. 조건이 여러 개 일 때 간단히 표현되는 switch-case문 / 17. 반복문 - while문 / 18. 반복문 - do-while문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@woojeonjang/10일차-16.-조건이-여러-개-일-때-간단히-표현되는-switch-case문-17.-반복문-while문-18.-반복문-do-while문저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)