[Java 06] 자바 연습문제 (2) (조건문, 반복문)
제가 듣고 있는 자바 강의 연습과제를 통해 조건문과 반복문을 연습해보겠습니다.
Exam 01
영문자 모음의 아스키 코드 값을 아래의 출력형식에 맞추어 화면에 출력하세요.
-----------------------------
영문자 모음의 아스키 코드 값
-----------------------------
A = 65
E = 69
I = 73
O = 79
U = 85
-----------------------------
문제풀이
public class Exam01 {
public static void main(String[] args) {
String alpa = "AEIOU";
for(int i = 0; i < alpa.length(); i++) { // alpa.length는 String alpa의 문자열 길이
char askii = alpa.charAt((int)i); // alpa.chatAt(i)은 "AEIOU"의 문자열 중 i번째 문자를 선택하는 메소드
System.out.println(askii + " = " + (int)askii);
}
}
}
실행 결과
A = 65
E = 69
I = 73
O = 79
U = 85
Exam 02
(Exam 01 문제응용) 입력받은 영문자의 아스키 코드값을 출력하는 코드를 작성하세요.
문제풀이
import java.util.Scanner;
public class Exam02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 키보드 입력을 위해 스캐너
System.out.print("영문자를 입력해주세요 : ");
String alpa = sc.nextLine(); // 입력받은 문자열을 String alpa에 저장.
for(int i = 0; i < alpa.length(); i++) { //반복문으로 입력받은 문자열의 문자 한개씩을 선택해 아스키 코드로 출력
char askii = alpa.charAt((int)i);
System.out.println(askii + " = " + (int)askii);
}
}
}
실행결과
영문자를 입력해주세요 : ILoveJava
I = 73
L = 76
o = 111
v = 118
e = 101
J = 74
a = 97
v = 118
a = 97
Exam 03
(Exam 01 문제응용) 입력받은 영문자의 아스키 코드값을 출력하는 코드를 작성하세요.
문제풀이
import java.util.Scanner;
public class Exam03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("초를 입력하세요 : ");
int time = sc.nextInt();
sc.close();
int hour = time / 3600;
int minute = (time % 3600) / 60;
int second = (time % 3600) % 60;
// 3600초를 입력하면 '1시간 0분 0초'를 출력하는게 아니라 1시간으로 출력되게 하기 위한 조건문
if (hour != 0) {
System.out.printf("결과출력 : %d시간 ", hour);
}
if (minute != 0) {
System.out.printf("%d분 ", minute);
}
if (second != 0) {
System.out.printf("%d초", second);
}
}
}
실행결과
초를 입력하세요 : 36000
결과출력 : 10시간
Exam 04
아래 <예시>처럼 하나의 정수를 입력 받고 정수를 나눌 수를 입력 받은 다음 몫과 나머지를 화면에 출력하세요.예시>
정수를 입력하세요 : 90
나눌 수를 입력하세요 : 4
몫 : 22
나머지 : 2
문제풀이
import java.util.Scanner;
public class Exam04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int num1 = sc.nextInt();
System.out.print("나눌 수를 입력하세요 : ");
int num2 = sc.nextInt();
sc.close();
System.out.printf("몫 : %d\n", num1/num2);
System.out.printf("나머지 : %d", num1%num2);
}
}
실행결과
정수를 입력하세요 : 90
나눌 수를 입력하세요 : 4
몫 : 22
나머지 : 2
Exam 05
1달러는 현재 1217.20원 입니다. 화면에서 달러를 입력 받아 원화로 보여주는 프로그램을 작성하세요.
문제풀이
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("달러를 입력하세요 : ");
double dollor = sc.nextDouble();
double won = 1217.20;
System.out.printf("원화 : %.2f", dollor*won); //%.2f ==> 소수점 둘째 자리까지만 출력
}
}
실행결과
달러를 입력하세요 : 12.52
원화 : 15239.34
Exam 06
알파벳이 모두 몇 자인지 화면에 출력하시오.
문제풀이
public class Exam06 {
public static void main(String[] args) {
int cap = (int)'Z' - (int)'A' + 1; //알파벳 대문자 개수
int small = (int)'z' - (int)'a' + 1; //알파벳 소문자 개수
System.out.printf("개수? : %d", cap + small);
}
}
실행결과
개수? : 52
Exam 07
화면에서 알파벳을 입력 받아 대문자는 소문자로 소문자는 대문자로 출력하는 프로그램을 작성하시오.
문제풀이
public class Exam07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("입력(알파벳) : ");
String inputStr = sc.nextLine();
for (int i = 0; i < inputStr.length(); i++) { //입력받은 알파벳을 한 글자씩 대문자 또는 소문자로 변경
char alpa = inputStr.charAt(i); // 입력받은 문자열의 i번째 문자를 선택해 대/소문자 변경
if (64 < (int) alpa && (int) alpa < 91) { // 대문자를 소문자로 변경
int small = (int) alpa + 32;
System.out.print((char) small);
}
if (96 < (int) alpa && (int) alpa < 123) { // 소문자를 대문자로 변경
int cap = (int) alpa - 32;
System.out.print((char) cap);
}
}
sc.close();
}
}
실행결과
입력(알파벳) : AaBbCcDdEeFfGg
aAbBcCdDeEfFgG
Exam 08
9,480원어치 물건을 사고 10,000원을 지불했을 때의 거스름돈과 1000원, 500원, 100원, 50원, 10원의 개수를 출력하는 프로그램을 작성하시오. 이때 물건값과 거스름돈은 키보드로 입력할 수 있어야 한다.
물건값을 입력하세요 : 5480
지불한 돈의 액수를 입력하세요 : 10000
거스름돈 : 4520원
1000원 : 4개
500원 : 1개
100원 : 0개
50원 : 0개
10원 : 2개
물건값을 입력하세요 : 5480
지불한 돈의 액수를 입력하세요 : 5000
480원이 부족합니다
문제풀이
import java.util.Scanner;
public class Exam08 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("물건값을 입력하세요 : ");
int cost = sc.nextInt();
System.out.print("지불한 돈의 액수를 입력하세요 : ");
int pay = sc.nextInt();
sc.close();
int change = pay - cost;
if (change >= 0) {
System.out.printf("거스름돈 : %,d원\n", change);
System.out.printf("1,000원 : %d개\n", change / 1000);
System.out.printf("500원 : %d개\n", (change % 1000) / 500);
System.out.printf("100원 : %d개\n", ((change % 1000) % 500) / 100);
System.out.printf("50원 : %d개\n", (((change % 1000) % 500) % 100) / 50);
System.out.printf("10원 : %d개", ((((change % 1000) % 500) % 100 % 50) / 10));
} else {
System.out.printf("%d원이 부족합니다", -change);
}
}
}
실행결과
물건값을 입력하세요 : 5280
지불한 돈의 액수를 입력하세요 : 10000
거스름돈 : 4,720원
1,000원 : 4개
500원 : 1개
100원 : 2개
50원 : 0개
10원 : 2개
물건값을 입력하세요 : 5480
지불한 돈의 액수를 입력하세요 : 5000
480원이 부족합니다
댓글남기기