[Java] #6 Java 기본 문법 실습문제
1. 연습문제
연습문제 #1
문제
키보드로부터 한 개의 정수 값을 입력받는다. 키보드로부터 받은 정수로 5의 배수의 개수와 합을 구하여 화면에 출력하는 프로그램을 작성하시오. (출력 내용 : 5의 배수의 개수, 5의 배수의 합)
정답
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int intVal = scanner.nextInt();
int count = intVal / 5;
int total = 0;
for (int i = 0; i <= intVal; i += 5) {
total += i;
}
System.out.println("정수 입력 값 : " + intVal);
System.out.println("5의 배수의 갯수 : " + count);
System.out.println("5의 배수의 합 : " + total);
scanner.close();
}
}
연습문제 #2
문제
키보드로부터 두 개의 정수 값을 입력받아서 if-else 문을 이용하여 큰 값과 작은 값을 구하는 프로그램을 작성하시오.
정답
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("첫 번째 정수를 입력하세요 : ");
int a = scanner.nextInt();
System.out.print("두 번째 정수를 입력하세요 : ");
int b = scanner.nextInt();
if (a > b) {
System.out.println("큰 값은 " + a + "입니다.");
System.out.println("작은 값은 " + b + "입니다.");
} else {
System.out.println("큰 값은 " + b + "입니다.");
System.out.println("작은 값은 " + a + "입니다.");
}
scanner.close();
}
}
연습문제 #3
문제
- 키보드로부터 두 개의 정수 값을 입력받아서 곱을 구하는 프로그램을 작성하시오.
- 단, 입력 받은 2개의 정수 값의 곱이 500을 초과하면 프로그램을 중단한다. (while 문, break 문 사용)
정답
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("첫 번째 정수를 입력하세요 : ");
int a = scanner.nextInt();
System.out.print("두 번째 정수를 입력하세요 : ");
int b = scanner.nextInt();
int division = a * b;
while (true) {
if (division > 500) {
System.out.println("두 수의 곱이 500을 초과하였습니다.");
break;
} else {
System.out.println("a * b = " + division);
break;
}
}
scanner.close();
}
}
연습문제 #4
문제
- 한 학생의 자바 점수인 출석, 과제, 중간시험, 기말시험 점수(각각 100점 만점)를 키보드로부터 정수로 입력 받아 학점을 계산하여 출력하는 프로그램을 작성하시오. (if문, switch문, 배열 사용)
- 조건
- 출석 20%, 과제 20%, 중간시험 30%, 기말시험 30%로 하여 100점 만점
- 최대 점수 : 출석 20, 과제 20, 중간고사 30, 기말고사 30
- 학점 : 90~100:A, 80~89:B, 70~79:C, 60~69:D, 0~59:F
정답
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int arr[] = { 0, 0, 0, 0 }; // 점수를 저장한 배열 선언
System.out.print("출석 점수를 입력하세요. (100점 만점) : ");
arr[0] = scanner.nextInt();
if (arr[0] > 100) {
System.out.println("출석 점수는 100점을 초과할 수 없습니다. 다시 입력해 주세요.");
arr[0] = scanner.nextInt();
}
System.out.print("과제 점수를 입력하세요. (100점 만점) : ");
arr[1] = scanner.nextInt();
if (arr[1] > 100) {
System.out.println("과제 점수는 100점을 초과할 수 없습니다. 다시 입력해 주세요.");
arr[1] = scanner.nextInt();
}
System.out.print("중간 점수를 입력하세요. (100점 만점) : ");
arr[2] = scanner.nextInt();
if (arr[2] > 100) {
System.out.println("중간 점수는 100점을 초과할 수 없습니다. 다시 입력해 주세요.");
arr[2] = scanner.nextInt();
}
System.out.print("기말 점수를 입력하세요. (100점 만점) : ");
arr[3] = scanner.nextInt();
if (arr[3] > 100) {
System.out.println("기말 점수는 100점을 초과할 수 없습니다. 다시 입력해 주세요.");
}
float sumScore = (float) ((arr[0] * 0.2) + (arr[1] * 0.2) + (arr[2] * 0.3) + (arr[3] * 0.3));
System.out.println("총점: " + sumScore+"점");
// 학점 계산
int grade = (int) (sumScore / 10);
switch (grade) {
case 10:
case 9:
System.out.println("당신의 학점은 " + "A" + "학점 입니다.");
break;
case 8:
System.out.println("당신의 학점은 " + "B" + "학점 입니다.");
break;
case 7:
System.out.println("당신의 학점은 " + "C" + "학점 입니다.");
break;
case 6:
System.out.println("당신의 학점은 " + "D" + "학점 입니다.");
break;
default:
System.out.println("당신의 학점은 " + "F" + "학점 입니다.");
}
scanner.close();
}
}
연습문제 #5
문제
- 세일기간 중에 백화점에서 상품을 구입하였다. 키보드로부터 상품의 단가와 수량을 입력받아 지불 금액과 할인율을 계산하여 출력하는 프로그램을 작성하시오. (출력내용 : 상품단가, 상품수량, 지불금액, 할인율)
- 조건
- 총 상품 구입금액이 50만원 이상일 때 30%를 할인하고, 총 상품 구입금액이 100만원 이상일 때 40%를 할인한다.
- 지불 금액은 “상품단가 * 수량”으로 계산한다.
정답
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("상품의 가격을 입력하세요 : ");
int price = scanner.nextInt();
System.out.print("상품의 갯수을 입력하세요 : ");
int number = scanner.nextInt();
int total = price * number;
int sale = 0;
if (total >= 1000000) {
sale = 40;
total = (int) (total * 0.6);
} else if (total >= 500000) {
sale = 30;
total = (int) (total * 0.7);
}
System.out.println("상품 가격 : " + price + "원");
System.out.println("상품 갯수 : " + number + "개");
System.out.println("지불 금액 : " + total + "원");
System.out.println("할인율 : " + sale + "%");
scanner.close();
}
}
연습문제 #6
문제
중첩된 for문을 사용하여 2차원 배열에 구구단을 저장한 후에, 화면에 출력하는 프로그램을 작성하시오. 출력도 중첩된 for문을 사용한다. (중첩 for문, 배열 사용)
정답
배열 미사용
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(i + " x " + j + " = " + i * j + "\t");
}
System.out.println("");
}
scanner.close();
}
}
배열 사용
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 2차원 배열 선언
int[][] multiplicationTable = new int[10][10];
// 구구단 계산 후 배열 저장
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
multiplicationTable[i][j] = i * j;
}
}
// 구구단 출력
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(i + " x " + j + " = " + multiplicationTable[i][j]+"\t");
}
System.out.println("");
}
scanner.close();
}
}
2. 실습문제
실습문제 #1
문제
다음의 프로그램은 숫자를 키보드로 입력받아서 역순으로 출력한다. 다음과 같은 결과가 나오도록 프로그램을 완성하시오.
정답
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("숫자를 입력하세요 : ");
int inputNum = scanner.nextInt();
int reverseNum = 0;
while (inputNum > 0) {
reverseNum = inputNum % 10 + reverseNum * 10;
inputNum /= 10; // 다음 자리수로 이동
}
System.out.println("바뀐 숫자 : " + reverseNum);
scanner.close();
}
}
실습문제 #2
문제
- 키보드로부터 5개의 정수를 입력 받아서 최대값을 구하여 출력하는 프로그램을 작성하시오. (출력 내용 : 제목, 입력 값, 최대 값)
- for문, 배열 사용
정답
import java.util.Scanner;
public class _Quiz_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arrNum = new int[5];
// 정수 입력받기
for (int i = 0; i < 5; i++) {
System.out.print("정수를 입력하세요. " + "[" +( i + 1) + "/5] : ");
arrNum[i] = scanner.nextInt();
}
// 최대 값 구하기
int max = arrNum[0];
for (int i = 0; i < 5; i++) {
if (arrNum[i] > max) {
max = arrNum[i];
}
}
System.out.println("최대 값 : " + max);
scanner.close();
}
}
실습문제 #3
문제
키보드를 통하여 임의의 정수 10개를 입력하여 오름차순으로 정렬하고, 데이터의 합과 평균을 구하여 출력한다. 다음과 같이 출력하는 프로그램을 빈칸을 채워서 완성하시오. (for문, 배열 사용)
구현 방법
버블 정렬 알고리즘 사용🫧
정답
package work;
import java.util.Scanner;
public class _실습문제04_ {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] inputValue = new int[10];
System.out.println("정수 10개를 입력하세요 : ");
for (int i = 0; i < inputValue.length; i++) {
inputValue[i] = scanner.nextInt();
}
System.out.print("입력 데이터 값 : ");
for (int i = 0; i < inputValue.length; i++) {
System.out.print(inputValue[i] + "..");
}
System.out.println();
// 오름차순 정렬(버블 정렬)
int temp = 0;
for (int i = 0; i < inputValue.length - 1; i++) {
for (int j = 0; j < inputValue.length - 1 - i; j++) {
if (inputValue[j] > inputValue[j + 1]) {
temp = inputValue[j];
inputValue[j] = inputValue[j + 1];
inputValue[j + 1] = temp;
}
}
}
// 합계 구하기
int sum = 0;
for (int i = 0; i < inputValue.length; i++) {
sum += inputValue[i];
}
// 평균 구하기
int everage = sum / inputValue.length;
System.out.print("오름차순 데이터 값 : ");
for (int i = 0; i < inputValue.length; i++) {
System.out.print(inputValue[i] + "..");
}
System.out.println();
System.out.println("합계 : " + sum);
System.out.println("평균 : " + everage);
scanner.close();
}
}
댓글남기기