728x90
명품 자바 에센셜
황기태 저
자바 프로그래밍에 빠져들게 하는 재미있고 쉬운 해설서명품 자바 에센셜은 한 학기에 자바의 기초를 습득할 수 있도록 작성된 책이다. 자바 언어에 대한 쉬운 설명과 의미 있는 예제를 도입하여 이론이 프로그래밍으로 이어지게 하고, 이해도 높은 삽화와 그림으로 본문에 쉽게 몰입할 수 있도록 하였다. 그러므로 이 책은...
[실습문제]
1. 두 정수를 입력받아 합을 구하여 출력하는 프로그램을 작성하라. 키보드 입력은 Scanner 클래스를 이용하라.두 정수를 입력하세요>>10 20 10+20은 30
public class ex2_1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("두 정수를 입력하세요>>");
int num1 = scan.nextInt();
int num2 = scan.nextInt();
int sum = num1 + num2;
System.out.println(num1 + "+" + num2 + "=" + sum);
scan.close();
}// main
}
2. 한 층의 높이가 5m일 때, 건물이 몇 층인지 입력받아 높이를 출력하라.몇 층인지 입력하세요>>155 775m 입니다.
public class ex2_2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("몇 층인지 입력하세요>>");
int num = scan.nextInt();
System.out.println(num * 5 + "m 입니다.");
scan.close();
}// main
}
3. x 값을 입력받아 y = x²-3x+7 식을 계산하여 y 값을 출력하는 프로그램을 작성하라.x 값을 입력하세요>>5 x=5, y=17
public class ex2_3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("x 갑을 입력하세요>>");
int x = scan.nextInt();
int y = (x * x) + (-3 * x) + 7;
System.out.println("x=" + x + ", y=" + y);
scan.close();
}// main
}
4. 2차원 평면에서 하나의 직사각형은 두 점으로 표현된다. (50, 50)과 (100, 100)의 두 점으로 이루어진 사각형이 있다고 하자. 한 점을 구성하는 정수 x와 y 값을 입력받고 점(x, y)가 이 직사각형 안에 있는지를 판별하는 프로그램을 작성하라.점 (x,y)의 좌표를 입력하세요>> 60 70 점 (60, 70)은 (50, 50)과 (100, 100)의 사각형 내에 있습니다.
public class ex2_4 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("점 (x,y)의 좌표를 입력하세요>>");
int x = scan.nextInt();
int y = scan.nextInt();
if(x >= 50 && 100 >= x) {
System.out.println("점 (" + x + ", " + y + ")은 (50, 50)과 (100, 100)의 사각형 내에 있습니다.");
}else if(y >= 50 && 100 >= y){
System.out.println("점 (" + x + ", " + y + ")은 (50, 50)과 (100, 100)의 사각형 외에 있습니다.");
}
scan.close();
}//main
}
5. 다음과 같이 AND와 OR의 논리 연산을 입력받아 결과를 출력하는 프로그램을 작성하라. 예를 들어 'true AND false'의 결과로 false를 , 'true OR false'의 결과로 true를 출력하면 된다. if문 대신 switch 문을 이용하라.논리 연산을 입력하세요>>true OR false true
더보기[힌트]
다음과 같이 키포드에서 3개의 토근을 읽고 switch와 case를 구성하면 된다.boolean a = scanner.nextBoolean(); // 첫 번째 논리 값 읽기 String op = scanner.next(); // 논리 연산자(AND 또는 OR)를 문자열로 읽기 boolean b = scanner.nextBoolean(); // 두 번째 논리 값 읽기 switch(op) { case "AND": ... }
public class ex2_5 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("논리 연산을 입력하세요>>");
boolean t = scan.nextBoolean();
String op = scan.next();
boolean f = scan.nextBoolean();
switch(op) {
case "OR":
System.out.println("true");
break;
case "AND":
System.out.println("false");
}
scan.close();
}//main
}
6. 돈의 액수를 입력받아 오만원권, 만원권, 천원권, 500원짜리 동전, 100원짜리 동전, 10원짜리 동전, 1원짜리 동전 각 몇 개로 변환되는지 출력하라. 실습 문제 9의 힌트를 참고하라.돈의 액수를 입력하세요>>65245 오만원1개, 만원1개, 천원5개, 500원0개, 100원2개, 10원4개, 1원5개
public class ex2_6 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("돈의 액수를 입력하세요>>");
int money = scan.nextInt();
System.out.print("오만원" + money / 50000 + "개, ");
money %= 50000;
System.out.print("만원" + money / 10000 + "개, ");
money %= 10000;
System.out.print("천원" + money / 1000 + "개, ");
money %= 1000;
System.out.print("500원" + money / 500 + "개, ");
money %= 500;
System.out.print("100원" + money / 100 + "개, ");
money %= 100;
System.out.print("10원" + money / 10 + "개, ");
money %= 10;
System.out.print("1원" + money / 1 + "개");
money %= 1;
scan.close();
}// main
}
7. 학점이 A, B이면, "Excellent", 학점이 C, D이면 "Good", 학점이 F이면 "Bye"라고 출력하는 프로그램을 작성하라. switch와 break를 활용하라.학점을 입력하세요>>B Excellent
public class ex2_7 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("학점을 입력하세요>>");
char credit = scan.next().charAt(0);
switch (credit) {
case 'A':
case 'B':
System.out.println("Excellent");
break;
case 'C':
case 'D':
System.out.println("Good");
break;
case 'F':
System.out.println("Bye");
break;
}
scan.close();
}// main
}
8. 음료수 종류와 잔 수를 입력받으면 가격을 알려주는 프로그램을 작성하라. 에스프레소는 2000원, 아메리카노 2500원, 카푸치노 3000원, 카페라떼 3500원이다.⑴ if 문을 활용하라.커피 주문하세요>>카푸치노 3 9000원입니다.
⑵ switch 문을 활용하라.
더보기[힌트]
if 문으로 문자열을 비교할 때는 반드시 equalse() 메소드를 이용하라. 예를 들면 다음과 같다.String coffee; if(coffee.equalse("에스프레소"))
⑴ if 문을 활용하라.
public class ex2_8 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("커피를 주문하세요>>");
String coffee = scan.next();
int sum = scan.nextInt();
// if 문을 활용하라.
if (coffee.equals("에스프레소"))
System.out.println(sum * 2000 + "원입니다.");
else if(coffee.equals("아메리카노"))
System.out.println(sum * 2500 + "원입니다.");
else if(coffee.equals("카푸치노"))
System.out.println(sum * 3000 + "원입니다.");
else if(coffee.equals("카페라떼"))
System.out.println(sum * 3500 + "원입니다.");
else
System.out.println("메뉴판에 없습니다.");
scan.close();
}// main
}
⑵ switch 문을 활용하라.
public class ex2_8 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("커피를 주문하세요>>");
String coffee = scan.next();
int sum = scan.nextInt();
// switch 문을 활용하라.
switch (coffee) {
case "에스프레소":
System.out.println(sum * 2000 + "원입니다.");
break;
case "아메리카노":
System.out.println(sum * 2500 + "원입니다.");
break;
case "카푸치노":
System.out.println(sum * 3000 + "원입니다.");
break;
case "카페라떼":
System.out.println(sum * 3500 + "원입니다.");
break;
default:
System.out.println("메뉴판에 없습니다.");
}
scan.close();
}// main
}
9. 369게임의 일부를 작성해보자. 1~99까지의 정수를 입력받고 수에 3, 6, 9 중 하나가 있는 경우는 "박수짝", 두 개 있는 경우는 "박수짝짝", 하나도 없으면 "박수없음"을 출력하는 프로그램을 작성하라. 예를 들면, 13인 경우 "박수짝", 36인 경우 "박수짝짝", 5인 경우 "박수없음"을 출력하면 된다.1~99 사이의 정수를 입력하세요>>36 박수짝짝
더보기[힌트]
정수 n의 값이 36이라고 할 때 정수 3과 6을 분리하는 방법은 다음 코드를 참고하라.int first = n/10; // 10으로 나눈 몫 = 3 int second = n%10; // 10으로 나눈 나머지 = 6
public class ex2_9 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("1~99 사이의 정수를 입력하세요>>");
int num = scan.nextInt();
int first = num / 10; // 10으로 나눈 몫 = 3
int second = num % 10; // 10으로 나눈 몫 = 6
if (num < 100) {
if (first == 3 || first == 6 || first == 9) {
if (second == 3 || second == 6 || second == 9)
System.out.println("박수짝짝");
else
System.out.println("박수짝");
} else if (first != 3 || first != 6 || first != 9) {
System.out.println("박수짝");
} else {
System.out.println("박수없음");
}
} else {
System.out.println("1~99 사이를 정수가 아닙니다.");
}
scan.close();
}// main
}
10. 실습 문제 8번을 변형해보자. 에스프레소는 2000원, 아메리카노 2500원 카푸치노 3000원, 카페라떼 3500원이며, 에스프레소의 경우 10잔 이상을 주문하며 가격의 5%를 할인해준다.커피 주문하세요>>에스프레소 9 18000원입니다.
커피 주문하세요>>에스프레소 10 19000원입니다.
public class ex2_10 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("커피를 주문하세요>>");
String coffee = scan.next();
int sum = scan.nextInt();
switch (coffee) {
case "에스프레소":
if (sum >= 10)
System.out.println((int) (sum * 2000 * 0.95) + "원입니다.");
else
System.out.println(sum * 2000 + "원입니다.");
break;
case "아메리카노":
System.out.println(sum * 2500 + "원입니다.");
break;
case "카푸치노":
System.out.println(sum * 3000 + "원입니다.");
break;
case "카페라떼":
System.out.println(sum * 3500 + "원입니다.");
break;
default:
System.out.println("메뉴판에 없습니다.");
}
scan.close();
}// main
}
Bonus 1. 사칙 연산을 입력받아 실행해주는 프로그램을 작성하고자 한다. 이때 연산자는 +, -, *, /의 4가지로 하고 피연산자는 모두 실수이며, 다음과 같이 피연산자와 연산자는 빈칸으로 분리하여 입력하는 것으로 한다.
이 프로그램의 실행 사례가 아래와 같을 때, 다음 코드를 완성하라.
32.3 + 3 16.6 - 20.3 5 * 2.1 6 / 3 식을 입력하세요>>32.3 + 3 연산 결과 35.3
import java.util.Scanner; //Scanner 클래스를 사용하기 위한 import 문
public class ex2_11 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Scanner 객체 생성
System.out.print("식을 입력하세요>>");
double op1 = scanner.nextDouble(); // 첫 번째 피연산자 입력
String operator = scanner.next(); // 연산자 스트링 입력
double op2 = scanner.nextDouble(); // 두 번째 피연산자 입력
double result = 0;
switch (operator) {
case "+":
result = op1 + op2;
break;
case "-":
result = op1 - op2;
break;
case "*":
result = op1 * op2;
break;
case "/":
if (op2 == 0) { // 나누는 수가 0이면
System.out.println();
return; // 프로그램 종료
}
result = op1 / op2;
break;
default:
System.out.println("연산 기호가 잘못되었습니다.");
}
System.out.println("연산 결과 " + result); // 연산 결과 출력
scanner.close();
}// main
}
반응형
'답안지 > 명품 자바 에센셜' 카테고리의 다른 글
[Open Challenge] CHAPTER 03 반복문과 배열 그리고 예외 처리 (0) | 2023.06.07 |
---|---|
[이론문제] CHAPTER 03 반복문과 배열 그리고 예외 처리 (0) | 2023.05.15 |
[이론문제] CHAPTER 02 자바 기본 프로그래밍 (0) | 2023.04.11 |
[Open Challenge] CHAPTER 02 자바 기본 프로그래밍 (0) | 2023.04.10 |
[실습문제] CHAPTER 01 자바 시작 (0) | 2023.04.09 |