[Java 05] 자바 연습문제 (1) (조건문, 반복문)
‘이것이 자바다’ 책의 연습문제를 통해 조건문과 반복문을 연습해보겠습니다.
Exam 01
for문을 이용해서 1부터 100까지의 정수 중에서 3의 배수의 총합을 구하는 코드를 작성하시오.(출처 : 이것이 자바다 p133 3번 문제)
public class Exam01 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0) {
sum = sum + i;
}
}
System.out.printf("3의 배수의 합 : %d", sum);
}
}
실행 결과
3의 배수의 합 : 1683
Exam 02
while문과 Math.random()메소드를 이용해서 두 개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성하시오. (출처 : 이것이 자바다 p133 4번 문제)
public class Exam02 {
public static void main(String[] args) {
while (true) {
int i = (int) (Math.random() * 6) + 1;
int j = (int) (Math.random() * 6) + 1;
if (i + j == 5) {
System.out.printf("(%d, %d)", i, j);
break;
}
System.out.printf("(%d, %d)\n", i, j);
}
}
}
실행 결과
(3, 4)
(3, 4)
(3, 5)
(3, 2)
Exam 03
중첩 for문을 이용하여 방정식 4x + 5y = 60의 모든 해를 구해서 (x, y) 형태로 출력하시오. 단, x와 y는 10이하의 자연수입니다. (출처 : 이것이 자바다 p134 5번 문제)
public class Exam03 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 10; j++) {
int cal = 4 * i + 5 * j;
if (cal == 60) {
System.out.printf("(%d, %d)\n", i, j);
}
}
}
}
}
실행 결과
(5, 8)
(10, 4)
Exam 04
for문을 이용해서 실행 결과와 같은 삼각형을 출력하는 코드를 작성하시오. (출처 : 이것이 자바다 p134 6번 문제)
public class Exam04 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
실행 결과
*
**
***
****
*****
Exam 05
for문을 이용해서 실행 결과와 같은 삼각형을 출력하는 코드를 작성하시오. (출처 : 이것이 자바다 p134 6번 문제)
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
boolean run = true;
int deposit = 0; // 예금
int withdrow = 0; // 출금
int balance = 0; // 잔고
Scanner sc = new Scanner(System.in);
while (run) {
System.out.println("--------------------------------");
System.out.println("1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료");
System.out.println("--------------------------------");
System.out.print("선택> ");
int choice = sc.nextInt();
if (choice == 1) {
System.out.print("예금액>");
deposit = sc.nextInt();
balance += deposit; // 입력된 예금액을 잔고에 더해준다.
} else if (choice == 2) {
System.out.print("출금액>");
withdrow = sc.nextInt();
if (balance - withdrow < 0) { // 예금액 - 출금액이 음수일 경우
int insuf = balance - withdrow; // int insuf 잔고 부족금액 변수
System.out.printf("잔고 부족\n부족금액 : %d원\n", -insuf);
} else {
balance -= withdrow; // 입력된 출금액을 잔고에서 빼준다.
}
} else if (choice == 3) {
System.out.println("잔고>" + balance); // 예금과 출금을 계산하고 난 잔고를 출력한다.
} else {
break;
}
}
sc.close();
System.out.printf("\n프로그램 종료");
}
}
실행 결과
--------------------------------
1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료
--------------------------------
선택> 1
예금액>10000
--------------------------------
1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료
--------------------------------
선택> 2
출금액>3500
--------------------------------
1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료
--------------------------------
선택> 3
잔고>6500
--------------------------------
1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료
--------------------------------
선택> 2
출금액>10000
잔고 부족
부족금액 : 3500원
--------------------------------
1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료
--------------------------------
선택> 3
잔고>6500
--------------------------------
1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료
--------------------------------
선택> 4
프로그램 종료
더 좋은 코드나 틀린 부분이 있다면 댓글로 지적해주세요!
댓글남기기