안녕하세요, 작가 J입니다. 이번에는 Java로 간단한 산술 연산과 반복문을 활용한 프로그램을 만들어 보겠습니다. 이번 예제는 사용자로부터 두 개의 숫자를 입력받아 뺄셈을 수행하고, 특정 조건에서 프로그램을 종료하는 문제입니다.
[Java Festival Bonus 01] 숫자 입력 및 뺄셈 프로그램
다음과 같은 프로그램을 작성하시오.
- A,B 숫자를 입력 받는다.
- A-B를 출력한다.
- A와 B가 모두 0을 입력 받으면 프로그램이 종료된다.
문제는 잘 정리되어 있으므로, 따로 설명이나 해석 없이 바로 코드 풀이로 들어가겠습니다.
코드 풀이
먼저 이 문제를 해결하기 위한 자바 코드를 보겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("A 입력: ");
int num1 = sc.nextInt();
System.out.print("B 입력: ");
int num2 = sc.nextInt();
while (num1 != 0 || num2 != 0) { // A와 B가 모두 0이 아닐 때 반복
int result = num1 - num2;
System.out.println("결과: " + result);
System.out.print("A 입력: ");
num1 = sc.nextInt();
System.out.print("B 입력: ");
num2 = sc.nextInt();
}
System.out.println("프로그램을 종료합니다.");
}
}
위 코드는 while 문의 조건을 활용한 풀이입니다. 조건이 A와 B가 모두 0이 아닐 때 while 문이 계속 반복됩니다. 다만, 이 풀이는 조건을 해석하기가 까다로울 수 있으며, int num1, num2의 값을 초기화할 수 없습니다. 둘 다 초기화로 0이 되면 처음부터 프로그램이 종료되기 때문입니다.
다른 풀이를 한 번 보겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num1 = 0, num2 = 0; // A,B 변수
while (true) {
System.out.print("A 입력 >> ");
num1 = sc.nextInt();
System.out.print("B 입력 >> ");
num2 = sc.nextInt();
if(num1 == 0 && num2 == 0) break; // A와 B가 0이면 탈출
System.out.println("결과 >> " + (num1 - num2)); // 아니면 A - B 출력
}
}
}
위 코드는 더 간단하게 작성된 코드입니다. while 문을 일단 반복시키고, 그 안에서 num1과 num2가 0일 때 반복문을 빠져나오는 형태입니다.
마무리
이번 예제에서는 while 문을 사용하여 사용자로부터 입력을 받고, 특정 조건에서 프로그램을 종료하는 방법을 익혔습니다. 이를 통해 반복문의 다양한 형태를 이해하고, 입력과 조건문을 활용하는 방법을 배울 수 있습니다.
프로그래밍을 통해 다양한 문제를 해결하는 능력을 키우는 것은 매우 중요합니다. 특히 반복문과 조건문을 잘 활용하면 복잡한 문제도 쉽게 풀 수 있습니다. 앞으로도 다양한 예제를 통해 여러분의 프로그래밍 실력을 한 단계 더 끌어올리도록 하겠습니다.
제 기억으로 Java Festival의 Bonus 문제는 맞추지 않아도 넘어갈 수 있는 문제입니다. 처음에 문제를 확인했을 때 본인 능력으로 풀 수 있을 것 같으면 진행하시는 게 좋습니다. 문제를 보고 자신이 풀 수 있는지 판단하는 것도 좋은 자세입니다.
그리고 풀지 못하더라도 공부를 포기하지 않으셨으면 좋겠습니다. 다들 화이팅입니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 09. for문을 사용하여 A부터 Z까지 출력하기(ASCII 코드 사용) (0) | 2024.06.23 |
---|---|
[Java Festival] 08. 정수를 입력받아 1의 자리에서 반올림하기 (0) | 2024.06.23 |
[Java Festival] 07. 입력받은 행 개수에 따라 역삼각형 모양 별 출력하기 (0) | 2024.06.22 |
[Java Festival] 06. 수열을 이용한 계산 문제 해결하기 (0) | 2024.06.22 |
[Java Festival] 05. 입력받은 행 개수에 따라 별 출력하기 (0) | 2024.06.22 |