[Java]/Program source (java)

035 - Java if문을 통해 정수와 연산자 문자열(+, -, *, /)을 입력 받고 사칙 연산 처리하여 출력하기

Jelly-fish 2023. 8. 29. 22:20
/*=========================================
	■■■ 실행 흐름의 컨트롤(제어문) ■■■
	- if 문
	- if ~ else 문 실습
===========================================*/

// 1. 프로그램을 작성할 때 주어진 조건에 따라
//    분기 방향을 정하기 위해 사용하는 제어문에는
//	  if문, if~else문, 조건연산자, 복합 if문(if문 중첩), switch문이 있다.


// 2. if문은 if 다음의 조건이 참(true)일 경우
//    특정 문장을 수행하고자 할 때 사용되는 구문이다.


// 사용자로부터 임의의 두 정수와 연산자를 입력받아
// 해당 연산자의 연산 처리 결과를 출력하는 프로그램을 구현한다.
// 단, 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 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 = Integer.parseInt(br.readLine());
		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>> 입력 과정에 오류가 존재합니다.");
		}
		*/

		// 방법 ②
		/*
		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 == '+')
			System.out.printf("\n>> %d + %d = %d\n", a, b, (a+b));
		else if (op == '-')
			System.out.printf("\n>> %d - %d = %d\n", a, b, (a-b));
		else if (op == '*')
			System.out.printf("\n>> %d * %d = %d\n", a, b, (a*b));
		else if (op == '/')
			System.out.printf("\n>> %d / %d = %d\n", a, b, (a/b));
		else
			System.out.println("\n>> 입력 과정에 오류가 존재합니다.");

		*/

		// 방법 ③
		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("\n %d %c %d = %d\n", a, op, b, result);


	}

}

// 실행 결과

/*
첫 번째 정수 입력    : 20
두 번째 정수 입력    : 11
연산자 입력[+ - * /] : *

>> 20 * 11 = 220
계속하려면 아무 키나 누르십시오 . . .
*/


// 실행 결과

/*
첫 번째 정수 입력    : 251
두 번째 정수 입력    : 45
연산자 입력[+ - * /] : -

>> 251 - 45 = 206
계속하려면 아무 키나 누르십시오 . . .
*/

/*
첫 번째 정수 입력 : 25
두 번째 정수 입력 : 13
연산자 입력[+ - * /] : -

 25 - 13 = 12
계속하려면 아무 키나 누르십시오 . . .
*/



/*=============[내가 한 풀이]=========================
public class Test035
{
	public static void main(String[] args) throws IOException
	{
		// 1. 변수 선언
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String strInputNum1, strInputNum2;
		String strOperator;

		int nInputNum1, nInputNum2;

		int nResult=0;

		// 2. 입력 받기
		System.out.print("첫 번째 정수 입력 : ");
		strInputNum1 = br.readLine();

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

		System.out.print("연산자 입력[+ - * /] : ");
		strOperator = br.readLine();

		// 3. 정수 형태로 변경
		nInputNum1 = Integer.parseInt(strInputNum1);
		nInputNum2 = Integer.parseInt(strInputNum2);



		// 4. 연산 처리
		//		- 1 : 연산자가 + 일 때
		if (strOperator.equals("+"))
		{
			nResult = nInputNum1 + nInputNum2;
			System.out.println(nResult);
		}
		
		
		//		- 2 : 연산자가 - 일 때
		else if (strOperator.equals("-"))
		{
			nResult = nInputNum1 - nInputNum2;
			System.out.println(nResult);
		}
		
		//		-3 : 연산자가 * 일 때
		else if (strOperator.equals("*"))
		{
			nResult = nInputNum1 * nInputNum2;
			System.out.println(nResult);
		}

		//		-4 : 연산자가 / 일 때
		else if (strOperator.equals("/"))
		{
			nResult = nInputNum1 / nInputNum2;
			System.out.println(nResult);
		}
		else
		{
			System.out.println("연산자를 잘못 입력하셨습니다.");
		}
		

		System.out.printf("\n>> %2d %s %2d = %2d%n", nInputNum1, strOperator, nInputNum2, nResult);

		
	}
}
=====================================================*/