국비지원 JAVA 풀스택 과정/JAVA
[JAVA] 사칙연산 계산기 프로그램
ODaram
2022. 9. 27. 18:17
객체 지향 프로그래밍 : 추상화(=객체 모델링 : 사물을 데이터와 기능으로 분석하여 도출)
데이터 : 실수 2개(피연산자), 연산자(+,-,*,/), 결과값 > 4개
기능 : 사칙연산 > 연산자가 제공 > 연산자에 따라서 분기해야한다. (분기:쪼갠다,나눈다)
사칙 연산 계산기 프로그램
// 두 실수, 연산자 > 변수 3개 : 콘솔뷰에서 입력 받는다.
//연산자는 charAt(0)를 사용하여 문자열에서 첫번째 문자만 얻어온다.
// 사칙연산을 수행하고 결과값을 담는다.
// 결과값 > 변수 한개 1개
// 3,7, + 를 입력했다면 // 출력 ㅣ 3+7 = 10 .
package com.dream.controls;
import java.util.Scanner;
// 사칙연산 계산기 프로그램
public class ControlEx7 {
public static void main(String[] args) {
//변수 선언 단계
Scanner sc = new Scanner(System.in); //입력 스트림 객체 생성
double num1=0, num2=0, result=0;
char oper = 0;
String str =""; //Scanner 클래스는 문자를 얻어오는 메서드를 제공하지 않는다. 따라서 문자열로 얻어온 다음 charAt(index)로 문자 하나를 얻는다.
//1. 두 실수와 연산자를 입력받는다.
System.out.println("사칙연산 프로그램");
System.out.print("첫번째 숫자 : ");
num1 = sc.nextDouble();
System.out.print("연산자 입력 (+,-,*,/,%) : ");
str = sc.next(); //nextLine()는 Enter 키 까지 얻어오기 때문에 오류가 발생하므로 next()를 사용한다.
// 콘솔뷰에서 문자열을 얻어오는 메서드는 nextLine()과 next()이다.
// nextLine()은 Enter키까지 얻어온다. 따라서 데이터를 연속으로 받을 때 오류가 발생.
//"나는 천재다." .cahrAt(3) > '천'
oper = str.charAt(0);
System.out.print("두번째 숫자 : ");
num2 = sc.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 if(oper == '%') {
result = num1%num2;
}else {
System.out.println("프로그램 종료");
}
System.out.println(num1+" "+oper+" "+num2+" 는 "+result+" 입니다.");
}
}
Scanner 클래스는
문자를 얻어오는 메서드를 제공하지 않는다. 따라서 문자열로 얻어온 다음 charAt(index)로 문자 하나를 얻는다.
char oper = 0;
문자형은 "정수형"이다. A는 숫자로 65이다. 아스키 코드값으로 지정되어있다.