2.6 실습: 변수와 연산자 활용 – 키보드로 두 수를 입력받아 사칙연산 계산하기
자바에서 변수와 연산자만 제대로 익혀도, 여러분은 이미 실전 개발의 절반을 이해한 셈입니다. 간단한 계산기 프로그램을 직접 만들어보면서, 변수 선언과 입력 처리, 연산자 사용법까지 한 번에 정리해보세요!
안녕하세요! 😊 이번 시간에는 자바의 변수와 연산자를 직접 활용해보는 실습을 진행해볼게요. 그동안 배운 변수 선언과 입력 처리 방식, 그리고 산술 연산자들을 종합적으로 활용해볼 수 있는 기회랍니다. 자바 초보자분들에게는 아주 좋은 연습이 될 거예요! 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 수행하는 간단한 콘솔 프로그램을 만들어보면서 입력부터 연산, 출력까지 하나의 흐름으로 이해해볼 수 있도록 준비했어요. 자, 그럼 코딩의 세계로 들어가볼까요?
목차
1. 키보드 입력을 위한 Scanner 클래스 소개 🧾
자바에서 키보드로 값을 입력받으려면 Scanner라는 도구를 사용합니다. 이 클래스는 자바에서 사용자로부터 값을 입력받을 수 있도록 도와주는 아주 중요한 클래스예요.
Scanner는 java.util 패키지에 포함되어 있어서 사용하려면 반드시 import 해야 해요. 아래처럼요:
import java.util.Scanner;
Scanner를 사용하는 기본 문법은 아주 간단해요. Scanner sc = new Scanner(System.in);
으로 객체를 생성하고, sc.nextInt()
나 sc.nextLine()
등을 이용해 입력을 받으면 됩니다.
Scanner 클래스의 주요 메서드들 🔍
메서드 | 설명 |
---|---|
nextInt() |
정수를 입력받습니다. |
nextDouble() |
실수를 입력받습니다. |
nextLine() |
한 줄 전체를 문자열로 입력받습니다. |
next() |
공백 전까지의 문자열을 입력받습니다. |
🎯 Scanner 사용 시 주의할 점
-
nextInt()
와nextLine()
을 혼용할 경우 줄바꿈 문제 발생 가능 (버퍼 주의) - Scanner 객체는 한 번만 선언하고 사용하는 것이 원칙
- 프로그램 마지막에는
sc.close()
로 자원 해제하는 습관 들이기
Scanner는 실습에서 자주 쓰이기 때문에 익숙해져야 해요. 특히 다양한 입력 타입을 처리하면서 입력 오류를 방지하는 습관을 들이면 이후 복잡한 프로그램에서도 유용하게 쓰일 거예요. 😎
2. 변수 선언과 사용자 입력 받기 🧍
이제 Scanner를 사용해서 값을 입력받을 준비가 되었으니, 입력값을 저장할 변수를 선언해야겠죠? 자바에서 변수를 선언할 때는 자료형 변수명
의 형식으로 작성합니다. 예를 들어 두 정수를 입력받는다면 다음과 같이 선언할 수 있어요:
int num1;
int num2;
그리고 사용자로부터 입력을 받아 변수에 값을 저장하는 코드는 이렇게 됩니다:
Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 숫자를 입력하세요: ");
int num1 = sc.nextInt();
System.out.print("두 번째 숫자를 입력하세요: ");
int num2 = sc.nextInt();
🧠 변수 선언 시 체크 포인트
- 변수명은 의미 있게! – num1, num2도 괜찮지만 firstNumber, secondNumber처럼 직관적인 이름이 좋습니다.
- 정수는
int
, 실수는double
로! 입력값의 유형에 따라 자료형을 알맞게 설정하세요.
✅ 전체 입력 코드 예시
import java.util.Scanner;
public class CalculatorInput {
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(); // 입력 스트림 닫기
}
}
입력만 잘 처리해도 절반은 성공이에요! 변수 선언, 입력값 저장까지 정확히 이해했다면 이제 이 값들을 가지고 실제 연산을 해볼 차례입니다. 다음 단계에서는 드디어 산술 연산자를 사용해서 다양한 계산을 구현해볼 거예요. 기대되시죠? 😄
3. 산술 연산자 활용법 🔢
사용자로부터 입력받은 두 숫자를 가지고 이제 본격적으로 사칙연산을 해볼 시간이에요. 자바에서 산술 연산을 하려면 +, -, *, /, %
와 같은 산술 연산자를 사용합니다.
🛠️ 산술 연산자의 종류와 사용법
연산자 | 설명 | 예시 |
---|---|---|
+ |
덧셈 | num1 + num2 |
- |
뺄셈 | num1 - num2 |
* |
곱셈 | num1 * num2 |
/ |
나눗셈 (정수 나눗셈은 소수점 이하 버림) | num1 / num2 |
% |
나머지 | num1 % num2 |
이 연산자들은 기본적으로 숫자 타입(정수, 실수 모두)에 사용할 수 있어요. 연산 순서는 괄호 → 곱셈/나눗셈 → 덧셈/뺄셈 순이기 때문에 복잡한 식을 작성할 때는 괄호를 적절히 활용하는 것도 중요해요.
🎯 예시 코드: 연산 결과 출력
int sum = num1 + num2;
int sub = num1 - num2;
int mul = num1 * num2;
int div = num1 / num2;
int mod = num1 % num2;
System.out.println("덧셈 결과: " + sum);
System.out.println("뺄셈 결과: " + sub);
System.out.println("곱셈 결과: " + mul);
System.out.println("나눗셈 결과: " + div);
System.out.println("나머지 결과: " + mod);
여기서 중요한 포인트는 나눗셈 연산 시 0으로 나누는 오류예요. 만약 사용자 입력값 중 두 번째 수가 0이라면, num1 / num2
는 실행 시 오류를 발생시키고 프로그램이 종료됩니다. 이를 방지하기 위한 조건문 처리도 꼭 추가해줘야 해요.
🧩 팁: 정수 나눗셈의 주의점
정수와 정수를 나누면 결과는 소수점 없이 정수로 반환된다는 걸 기억하세요. 예를 들어 7 / 2
의 결과는 3입니다. 만약 3.5와 같은 결과를 원한다면 double
형을 사용하거나 (double)num1 / num2
처럼 형변환을 사용해야 해요.
4. 실습: 두 수를 입력받아 사칙연산 계산하기 🧮
자, 지금까지 배운 내용을 종합해서 하나의 계산기 프로그램을 만들어볼게요. 사용자로부터 두 개의 정수를 입력받고, 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지까지 모두 계산해서 출력해주는 프로그램입니다.
🔧 전체 코드 예시
import java.util.Scanner;
public class SimpleCalculator {
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();
int sum = num1 + num2;
int sub = num1 - num2;
int mul = num1 * num2;
System.out.println("덧셈 결과: " + sum);
System.out.println("뺄셈 결과: " + sub);
System.out.println("곱셈 결과: " + mul);
if (num2 != 0) {
int div = num1 / num2;
int mod = num1 % num2;
System.out.println("나눗셈 결과: " + div);
System.out.println("나머지 결과: " + mod);
} else {
System.out.println("나눗셈과 나머지 연산은 0으로 나눌 수 없습니다.");
}
sc.close();
}
}
이 코드에서는 입력부터 출력까지의 흐름이 자연스럽게 연결되어 있어요. 특히 조건문을 통해 0으로 나누는 경우를 체크한 부분이 아주 중요하답니다.
📌 실행 예시
첫 번째 정수를 입력하세요: 10
두 번째 정수를 입력하세요: 3
덧셈 결과: 13
뺄셈 결과: 7
곱셈 결과: 30
나눗셈 결과: 3
나머지 결과: 1
🧠 실습 포인트 정리
- Scanner를 사용해 사용자 입력 받기
- 입력값을 변수에 저장하고 산술 연산자 적용하기
- 나눗셈 전에 0인지 조건문으로 체크하기
- 프로그램 마지막에는 꼭
sc.close()
로 자원 해제하기
이 실습은 자바 문법의 기초를 확실히 다질 수 있는 예제예요. 직접 여러 숫자를 넣어보면서 결과를 확인해보세요. 그리고 오류가 발생했다면 그 원인을 꼭 분석해보는 습관! 정말 중요합니다.
5. 자주 발생하는 입력 관련 오류와 해결법 🛠️
실습을 하다 보면 종종 입력 처리에서 오류가 발생하는 경우가 있어요. 그럴 땐 당황하지 말고, 문제의 원인을 하나씩 점검해보는 게 중요합니다. 여기서는 초보자들이 가장 많이 겪는 입력 관련 오류들을 정리하고, 그 해결 방법도 함께 알려드릴게요.
❗ 오류 1: nextInt() 후 nextLine()이 작동하지 않는 문제
nextInt()
로 숫자를 입력받은 후 nextLine()
을 바로 사용하면, 줄바꿈 문자(\n
)가 남아 있어서 입력 없이 넘어가버리는 현상이 발생합니다.
해결 방법: nextLine()
을 사용하기 전에 sc.nextLine();
을 한 번 더 실행해서 줄바꿈 문자를 제거해 주세요.
sc.nextInt(); // 숫자 입력
sc.nextLine(); // 줄바꿈 제거
String str = sc.nextLine(); // 문자열 입력
❗ 오류 2: 숫자가 아닌 값 입력 시 예외 발생
nextInt()
나 nextDouble()
은 사용자가 숫자가 아닌 값을 입력하면 InputMismatchException
이라는 예외를 발생시켜요. 이건 자바가 해당 입력을 숫자로 해석할 수 없기 때문이죠.
해결 방법: 예외 처리를 위한 try-catch
문을 사용해서 사용자 입력을 검증하면 프로그램이 갑자기 종료되는 걸 막을 수 있어요.
try {
int num = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("숫자를 입력해야 합니다.");
sc.next(); // 잘못된 입력 제거
}
❗ 오류 3: 0으로 나누기
자바에서 0으로 나누는 건 절대 불가능해요. 정수를 0으로 나누면 ArithmeticException
예외가 발생하고, 실수의 경우에는 Infinity
라는 결과가 나올 수도 있어요.
해결 방법: 나눗셈을 하기 전에 반드시 if(num2 != 0)
조건을 확인하고 실행하도록 하세요.
📝 요약 리스트
-
nextInt()
이후nextLine()
사용 시 줄바꿈 제거 필요 - 잘못된 입력은
try-catch
로 예외 처리 - 0으로 나누는 연산은 반드시 조건문으로 방지
자바에서 입력 오류는 초보자들이 가장 많이 부딪히는 부분이에요. 하지만 그만큼 실력을 빨리 키울 수 있는 기회이기도 하죠. 💪 오류가 발생하면 무서워하지 말고, 차근차근 원인을 분석해보는 습관을 들이세요!
6. 실습 마무리 퀴즈 및 정리 📝
지금까지 우리는 Scanner를 이용한 입력 처리, 변수 선언, 산술 연산자 활용, 그리고 예외 처리까지 모두 실습해봤어요. 이 모든 개념은 자바 입문자의 필수 토대랍니다. 이번엔 복습을 겸해 간단한 퀴즈로 마무리해볼게요. 😊
✅ 복습 퀴즈
- 자바에서 키보드 입력을 처리하는 클래스는 무엇인가요?
nextInt()
다음에nextLine()
을 사용할 때 주의해야 할 점은?- 0으로 나누기를 방지하기 위해 사용하는 조건문은 어떤 형식인가요?
- 사용자로부터 두 정수를 입력받아 덧셈 결과만 출력하는 코드를 직접 작성해보세요.
📌 핵심 요약
- Scanner 클래스를 사용하면 키보드로부터 다양한 타입의 값을 입력받을 수 있음
- 변수는 입력된 값을 저장하고 연산을 가능하게 하는 핵심 도구
- 산술 연산자를 이용해 수학적 연산을 간단하게 수행할 수 있음
- 예외 처리는 프로그램을 더 안전하고 견고하게 만들어줌
이제 여러분도 자바로 아주 간단한 계산기를 구현할 수 있게 되었어요! 🎉 물론 지금은 아주 기본적인 수준이지만, 이 구조가 더 복잡한 프로그램의 밑거름이 된다는 점, 꼭 기억해두세요. 다음 단계에서는 조건문과 반복문을 활용한 더 다양한 흐름 제어 방법도 배워볼 거예요. 😊
마무리하며 ✨
이번 실습을 통해 여러분은 자바에서 가장 기초적이지만 중요한 개념인 변수 선언, 입력 처리, 산술 연산자 활용을 스스로 코드로 구현해보았어요. 단순한 계산기 프로그램이지만, 입력값의 흐름과 조건 분기, 예외 처리까지 연습할 수 있었죠.
자바 학습을 시작한 초보자분들에게 이 정도 프로젝트는 정말 좋은 훈련이에요. 직접 키보드로 입력값을 넣고 그 결과를 확인해보는 과정 속에서 프로그래밍이 단순히 이론이 아니라, 논리적인 흐름을 만드는 작업이라는 걸 자연스럽게 느낄 수 있었을 거예요.
앞으로는 조건문, 반복문, 배열 등 더 복잡한 구조로 나아가겠지만, 오늘 다룬 Scanner와 연산자의 개념은 그 모든 곳에서 계속 활용됩니다. 그러니 꼭 여러 번 연습해보세요. 틀려도 괜찮아요. 오히려 틀릴수록 더 많이 배울 수 있거든요! 😉
'JAVA' 카테고리의 다른 글
[FirstJava] 3.2 반복문 기초 – for 루프와 while/do-while 루프 구조 및 동작 원리 (2) | 2025.05.30 |
---|---|
[FirstJava] 3.1 조건 분기문 완전 정복 💡 – if문, else문, switch문까지 한 번에! (2) | 2025.05.29 |
[FirstJava] 2.5 키보드 입력과 Scanner 사용 – 표준 입력을 통해 값 읽어오기, Scanner 클래스 활용 (1) | 2025.05.27 |
[FirstJava] 2.4 연산자 우선순위 개념과 괄호를 통한 제어 (1) | 2025.05.26 |
[FirstJava] 2.3 연산자와 표현식 – 산술, 대입, 비교, 논리 연산자 및 삼항 연산자 사용법 (1) | 2025.05.23 |