[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원이 부족합니다

태그:

카테고리:

업데이트:

댓글남기기