반응형

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를 이용한 입력 처리, 변수 선언, 산술 연산자 활용, 그리고 예외 처리까지 모두 실습해봤어요. 이 모든 개념은 자바 입문자의 필수 토대랍니다. 이번엔 복습을 겸해 간단한 퀴즈로 마무리해볼게요. 😊

✅ 복습 퀴즈

  1. 자바에서 키보드 입력을 처리하는 클래스는 무엇인가요?
  2. nextInt() 다음에 nextLine()을 사용할 때 주의해야 할 점은?
  3. 0으로 나누기를 방지하기 위해 사용하는 조건문은 어떤 형식인가요?
  4. 사용자로부터 두 정수를 입력받아 덧셈 결과만 출력하는 코드를 직접 작성해보세요.

📌 핵심 요약

  • Scanner 클래스를 사용하면 키보드로부터 다양한 타입의 값을 입력받을 수 있음
  • 변수는 입력된 값을 저장하고 연산을 가능하게 하는 핵심 도구
  • 산술 연산자를 이용해 수학적 연산을 간단하게 수행할 수 있음
  • 예외 처리는 프로그램을 더 안전하고 견고하게 만들어줌

이제 여러분도 자바로 아주 간단한 계산기를 구현할 수 있게 되었어요! 🎉 물론 지금은 아주 기본적인 수준이지만, 이 구조가 더 복잡한 프로그램의 밑거름이 된다는 점, 꼭 기억해두세요. 다음 단계에서는 조건문과 반복문을 활용한 더 다양한 흐름 제어 방법도 배워볼 거예요. 😊

마무리하며 ✨

이번 실습을 통해 여러분은 자바에서 가장 기초적이지만 중요한 개념인 변수 선언, 입력 처리, 산술 연산자 활용을 스스로 코드로 구현해보았어요. 단순한 계산기 프로그램이지만, 입력값의 흐름과 조건 분기, 예외 처리까지 연습할 수 있었죠.

자바 학습을 시작한 초보자분들에게 이 정도 프로젝트는 정말 좋은 훈련이에요. 직접 키보드로 입력값을 넣고 그 결과를 확인해보는 과정 속에서 프로그래밍이 단순히 이론이 아니라, 논리적인 흐름을 만드는 작업이라는 걸 자연스럽게 느낄 수 있었을 거예요.

앞으로는 조건문, 반복문, 배열 등 더 복잡한 구조로 나아가겠지만, 오늘 다룬 Scanner연산자의 개념은 그 모든 곳에서 계속 활용됩니다. 그러니 꼭 여러 번 연습해보세요. 틀려도 괜찮아요. 오히려 틀릴수록 더 많이 배울 수 있거든요! 😉

반응형

+ Recent posts