[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);
}
}
=====================================================*/