📚 Study/Java

JAVA :: Test035_제어문 if~else (정수와 연산자 입력 받아 연산을 처리하는 프로그램 구현)

bono-hye 2023. 9. 8. 10:39

○ 실습

사용자로부터 임의의 두 정수와 연산자를 입력받아

해당 연산자의 연산 처리 결과를 출력하는 프로그램을 구현한다.

단 if  조건문을 활용하여 처리할 수 있도록 하며,

연산 결과는 편의상 정수 기반으로 처리될 수 있도록 한다.

 

실행 예)

첫 번째 정수 입력     : 10

두 번째 정수 입력     : 3

연산자 입력 [ + - * / ] : +

 

>> 10 + 3 = 13

계속하려면 아무 키나 누르세요...

 

▼ 내가 작성한 코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test035
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int n1, n2;
		char c;

		System.out.print("첫 번째 정수 입력 : ");
		n1 = Integer.parseInt(br.readLine());

		System.out.print("두 번째 정수 입력 : ");
		n2 = Integer.parseInt(br.readLine());

		System.out.print("연산자 입력[+ - * /] : ");
		c = (char)System.in.read();

		if (c=='+')
		{
			System.out.printf("%d + %d = %d\n", n1, n2, n1+n2);
		}
		else if (c=='-')
		{
			System.out.printf("%d - %d = %d\n", n1, n2, n1-n2);
		}
		else if (c=='*')
		{
			System.out.printf("%d * %d = %d\n", n1, n2, n1*n2);
		}
		else if (c=='/')
		{
			System.out.printf("%d / %d = %d\n", n1, n2, n1/n2);
		}

	}
}

▼ 같이 작성한 코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test035
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int a, b, op;			//-- 첫 번째, 두 번째 정수, 연산자 (연산자 정수로 해도 가능)
	

		System.out.print("첫 번째 정수 입력  : ");
		a = Integer.parseInt(br.readLine());

		System.out.print("두 번째 정수 입력  : ");
		b = Integer.parseInt(br.readLine());

		// Integer.parseInt()
		// "1234" → Integer.parseInt → 1234
		// "abcd" → Integer.parseInt → (Ⅹ)

		System.out.print("연산자 입력 [+ - * /] : ");
		//op = (char)Integer.parseInt(br.readLine());        // 택도 없음
		//op = (char)System.in.read();						 // (char)로 명시적 형 변환, op가 char형일 경우
		op = System.in.read();

		// 테스트
		//System.out.println("입력한 연산자 : " + op);		 // 출력 잘 됨

		// '+' → 43 / '-' → 45 / '*' → 42 / '/' → 47
		if (op == 43)		//-- 사용자가 입력한 연산자가 '+' 이라면
		{
				// a 와 b 의 덧셈 연산 수행하여 결과 출력
				System.out.printf("\n>> %d + %d = %d\n", a, b, (a+b));
		}
		else if (op == 45)		//-- 사용자가 입력한 연산자가 '-' 이라면
		{
				// a 와 b의 뺄셈 연산 수행하여 결과 출력
				System.out.printf("\n>> %d - %d = %d\n", a, b, (a-b));
		}
		else if (op == 42)		//-- 사용자가 입력한 연산자가 '*' 이라면
		{
				// a 와 b의 곱셈 연산 수행하여 결과 출력
				System.out.printf("\n>> %d * %d = %d\n", a, b, (a*b));
		}
		else if (op == 47)		//-- 사용자가 입력한 연산자가 '/' 이라면
		{
				// a 와 b의 나눗셈 연산 수행하여 결과 출력
				System.out.printf("\n>> %d / %d = %d\n", a, b, (a/b));
		}
		else					//-- 사용자가 입력한 연산자가 기본 사칙 연산자가 아니라면...
		{
			System.out.println("\n>> 입력 과정에 오류가 존재합니다.");
		}

▼ 같이 작성한 코드 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test035
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int a, b;		//-- 첫 번째, 두 번째 정수
		char op;		//-- 연산자

		System.out.print("첫 번째 정수 입력  : ");
		a = Integer.parseInt(br.readLine());

		System.out.print("두 번째 정수 입력  : ");
		b = Integer.parseInt(br.readLine());

		System.out.print("연산자 입력 [+ - * /] : ");
		op = (char)System.in.read();

		if (op == '+')
		{
				// a 와 b 의 덧셈 연산 수행하여 결과 출력
				System.out.printf("\n>> %d + %d = %d\n", a, b, (a+b));
		}
		else if (op == '-')		//-- 사용자가 입력한 연산자가 '-' 이라면
		{
				// a 와 b의 뺄셈 연산 수행하여 결과 출력
				System.out.printf("\n>> %d - %d = %d\n", a, b, (a-b));
		}
		else if (op == '*')		//-- 사용자가 입력한 연산자가 '*' 이라면
		{
				// a 와 b의 곱셈 연산 수행하여 결과 출력
				System.out.printf("\n>> %d * %d = %d\n", a, b, (a*b));
		}
		else if (op == '/')		//-- 사용자가 입력한 연산자가 '/' 이라면
		{
				// a 와 b의 나눗셈 연산 수행하여 결과 출력
				System.out.printf("\n>> %d / %d = %d\n", a, b, (a/b));
		}
		else					//-- 사용자가 입력한 연산자가 기본 사칙 연산자가 아니라면...
		{
			System.out.println("\n>> 입력 과정에 오류가 존재합니다.");
		}
    }
}

▼ 같이 작성한 코드 ③

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test035
{
	public static void main(String[] args) throws IOException
	{
  		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int a, b, result=0;
		char op;

		System.out.print("첫 번째 정수 입력    : ");
		a = Integer.parseInt(br.readLine());
		System.out.print("두 번째 정수 입력    : ");
		b = Integer.parseInt(br.readLine());
		System.out.print("연산자 입력[+ - * /] : ");
		op = (char)System.in.read();

		if(op=='+')
			result=a+b;
		else if(op=='-')
			result=a-b;
		else if(op=='*')
			result=a*b;
		else if(op=='/')
			result=a/b;

		System.out.printf("%d %c %d = %d\n", a, op, b, result);

	}
}