[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

프로그램 종료

더 좋은 코드나 틀린 부분이 있다면 댓글로 지적해주세요!

태그:

카테고리:

업데이트:

댓글남기기