Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch12
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch3
- 게시글 목록 api
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch6
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch13
- 2024 정보처리기사 수제비 실기
- 자바의 정석 기초편 ch4
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch5
- 2024 정보처리기사 시나공 필기
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch7
- 스프링 고급 - 스프링 aop
- 스프링 db2 - 데이터 접근 기술
- @Aspect
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch1
- 스프링 mvc1 - 스프링 mvc
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch9
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch8
- 코드로 시작하는 자바 첫걸음
- 스프링 입문(무료)
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch2
Archives
- Today
- Total
나구리의 개발공부기록
chapter4 - 조건문과 반복문 확인문제, 추가내용 / 이것이 자바다(개정판) 본문
이것이 자바다 개정판(신용권, 임경균 지음) - java 8 ~ 17대응
chapter4 - 조건문과 반복문
Switch문 추가내용
- Java 12 이후부터는 Switch문에서 Expressions(표현식) 사용가능
- break문을 없애는 대신에 화살표와 중괄호를 사용
- Switch Expresstions 사용시 스위치된 값을 변수에 바로 대입 가능
- 단일 값일 경우에는 화살표 오른쪽에 값을 기술
- 중괄효를 사용할 경우에는 yield(Java 13이후부터 사용 가능) 키워드로 값을 지정, 이 경우에는 default가 반드시 존재해야함
public class SwitchValuExample {
public static void main(String[] args) {
String grade = "B";
// Java 11 이전 문법
int score1 = 0;
switch(grade) {
case "A" :
score1 = 100;
break;
case "B" :
int result = 100 - 20;
score1 = result;
break;
default :
score1 = 60;
}
System.out.println("score1: " + score1);
// Java 12부터 가능
int score2 = switch(grade) {
case "A" -> 100;
case "B" -> {
int result = 100 - 20;
// Java 13부터 가능
yield result;
}
default -> 60;
};
System.out.println("score2: " + score2);
}
}
Q1. 조건문과 반복문에 대해 잘못 설명한 것은 무엇입니까? - 2번
- if 문은 조건식의 결과에 따라 실행 흐름을 달리할 수 있다
- switch 문에서 사용할 수 있는 변수의 타입은 int, double이 될 수 있다
- for 문은 카운터 변수로 지정한 횟수만큼 반복시킬 때 사용할 수 있다
- break 문은 switch 문, for 문 while 문을 종료할 때 사용할 수 있다
switch문에서 사용할 수 있는 변수의 타입은 정수타입(byte, short, int, long, char)과 문자열(String)타입
Q2. switch문을 Expression(표현식)으로 변경해서 코드를 작성
String grade = "B";
int score1 = 0;
switch (grade) {
case "A":
score1 = 100;
break;
case "B":
int result = 100 - 20;
score1 = result;
break;
default:
score1 = 60;
}
-----------------------------------
(자바12 부터)
int score1 = switch(grade) {
case "A" -> 100;
case "B" { // 중괄호를 사용할 경우 yield로 값을 지정(Java13 부터)
int result = 100 - 20;
yield result;
}
default score1 -> 60;
};
Q3. for문을 이용해서 1부터 100까지의 정수 중에서 3의 배수의 총합을 출력하는 코드를 작성
// i를 3씩 증가시켜서 sum에 3의 배수의 값을 누적 연산하도록 작성
int sum1 = 0;
for(int i = 0; i < 100; i+=3 ) {
sum1 += i;
}
System.out.println(sum1);
// i를 1씩 증가시킨 후 if문을 사용하여 3으로 나누기한 나머지가 0일때(3의 배수의 값을 선별) 누적 연산 하도록 작성
int sum2 = 0;
for(int i = 0; i < 100; i++ ) {
if(i % 3 ==0) {
sum2 += i;
}
}
System.out.println(sum2);
Q4. while 문과 Math.random() 메소드를 이용해서 두 개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성
(눈의 합이 5가 되는 경우는 (1,4), (4,1), (2,3), (3,2))
while(true) {
// 각 변수에 1 ~ 6 사이의 값이 랜덤값으로 초기화되도록 선언
int score1 = (int)(Math.random()*6)+1;
int score2 = (int)(Math.random()*6)+1;
int result = score1 + score2;
System.out.println("("+score1+", "+score2+")");
// 변수 result의 값이면 멈추도록 설정
if(result == 5) { // 변수 선언 없이 (score1 + score == 5)로 조건문을 해도 됨
break;
}
}
Q5. 중첩 for문을 이용하여 방정식 4x + 5y = 60의 모든 해를 구해서 (x,y) 형태로 출력하는 코드를 작성
(단, x와 y는 10 이하의 자연수)
// x의 값을 1부터 10까지 1씩 증가
for(int x = 1; x <= 10; x++ ) {
// y의 값을 1부터 10까지 1씩 증가
for(int y = 1; y <= 10; y++) {
// 아래의 조건식이 맞으면 x,y의 값을 출력
if(4 * x + 5 * y == 60) {
System.out.println("("+x+", "+y+")");
}
}
}
Q6. for 문을 이용해서 다음과 같은 실행 결과가 나오는 코드를 작성
*
**
***
****
*****
--------------------
// i를 5까지 1씩 증가시켜 엔터(줄건너뛰기)를 5번 시행
for(int i = 1; i <= 5; i++ ) {
// j를 i의 횟수만큼 1씩 증가시킨 값 만큼 *을 출력
for(int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
Q7. while 문과 Scanner의 nextLine() 메소드를 이용해서 다음 실행 결과와 같이 키보드로부터 입력된 데이터로 예금, 출금, 조회, 종료 기능을 제공하는 코드를 작성
// Scanner클래스를 생성하여 커맨드라인으로 입력값을 받음
Scanner scanner = new Scanner(System.in);
int balance = 0;
while(true) {
System.out.println("-----------------------------");
System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
System.out.println("-----------------------------");
System.out.print("선택 > ");
String choice = scanner.nextLine();
if(choice.equals("1")) {
System.out.print("예금액 > ");
balance += Integer.parseInt(scanner.nextLine());
} else if(choice.equals("2")) {
System.out.print("출금액 > ");
balance -= Integer.parseInt(scanner.nextLine());
} else if(choice.equals("3")) {
System.out.println("잔액 > "+balance);
} else if(choice.equals("4")) {
break;
}
}
System.out.println("프로그램 종료");
---------------------------------------------
// switch문으로도 가능
Scanner scanner = new Scanner(System.in);
int balance = 0;
boolean run = true; // while 작동하는 장치
while(run) {
System.out.println("-----------------------------");
System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
System.out.println("-----------------------------");
System.out.print("선택 > ");
String choice = scanner.nextLine();
// 각 case의 문자열과 choice의 값이 맞으면 문장들을 실행
switch(choice) {
case "1" :
System.out.print("예금액> ");
balance += Integer.parseInt(scanner.nextLine());
break;
case "2" :
System.out.print("출금액> ");
balance -= Integer.parseInt(scanner.nextLine());
break;
case "3" :
System.out.println("잔고> " + balance);
break;
case "4" :
System.out.println("프로그램 종료");
run = false; // run의 값을 false로 변경시켜서 while문을 종료
break;
}
}
'책 공부 > 이것이자바다 개정판(도서)' 카테고리의 다른 글
chapter3 - 연산자 확인문제, / 이것이 자바다(개정판) (0) | 2024.02.12 |
---|---|
chapter1 - 자바시작하기 확인문제 (일부만), chapter2 - 변수와 타입 확인문제 / 이것이 자바다(개정판) (2) | 2024.02.07 |