-객체 지향 프로그래밍: 추상화(객체 모델링: 사물을 데이터와 기능으로 분석하여 도출)
-사칙연산 계산기 프로그램
-(데이터: 실수 2개(피연산자), 연산자(+, -, *, /), 결과값 > 4개)
-기능: 사칙연산 > 연산자가 제공 > 연산자에 따라서 분기해야한다.
package com.dream.controls;
import java.util.Scanner;
public class ControlEx07 {
public static void main(String[] args) {
//변수 선언 단계
Scanner scan = new Scanner(System.in); //입력 스트림 객체 생성
double num1 = 0, num2 = 0, result = 0;
char oper = 0; //문자형은 "정수형"이다. A는 숫자로 65이다. 아스키 코드값으로 지정되어있다.
String str = ""; //문자열 String str = new String("나는 천재");
//콘솔뷰에 메시지를 출력해야한다.
System.out.println("사칙연산 프로그램");
System.out.print("실수 입력: ");
num1 = scan.nextDouble();
System.out.print("연산자 입력: ");
str = scan.next(); //콘솔뷰에서 문자열을 얻어오는 메서드는 nextLine( )과 next( )이다.
//nextLine( )는 Enter키까지 얻어온다. 따라서 데이터를 연속으로 받을 때 오류가 납니다.
oper = str.charAt(0); // +, -, *, / 중 사용자가 입력한 문자를 얻는다.
System.out.print("실수 입력: ");
num2 = scan.nextDouble();
if(oper == '+') { // 문자형과 정수형 모두 기본자료형, 기본 자료형의 데이터는 연산자로 비교 가능하다.
//클래스형은 비교 연산자로 비교할 수 없습니다.
result = num1 + num2;
}else if(oper == '-') {
result = num1 - num2;
}else if(oper == '*') {
result = num1 * num2;
}else if(oper == '/') {
result = num1 / num2;
}else {
System.out.println("연산자를 입력하세요.");
}
System.out.println(num1 + " " +oper+" "+num2+" = "+result);
}
}