寫一個支持四則運算的計算器,可以支持諸如“1 + 2 + 3”的表達式

寫一個支持四則運算的計算器,可以支持諸如“1 + 2 + 3”的表達式

第一版代碼:說明只能順序執行計算,沒有乘除括號等優先計算
import java.util.Scanner;

 /**
 * <p>ClassName: Calculator</p>
 * <p>Description: 計算器</p>
 * <p>Author: spring.zhang</p >
 * <p>Date: 2020年4月23日</p>
 */
public class Calculator {

	public static void main(String[] args) {
		// 輸入運算表達式
		Scanner in = new Scanner(System.in);
		String s = in.next();
		boolean flag = false; // 標識第一個數
		double sum = 0; // 運算結果
		char ch = '+'; // 用於記錄表達式最後一個運算符
		StringBuilder str = new StringBuilder(); // 記錄運算的數
		for (int i=0; i<s.length(); i++) {
			if (s.charAt(i) == '+' || s.charAt(i) == '-' || s.charAt(i) == '*' || s.charAt(i) == '/') {
				if(!flag){
					flag = true;
					sum+=Double.parseDouble(str.toString());
					str = new StringBuilder();
				}else{
					if (ch == '+') {
						sum += Double.parseDouble(str.toString());
					} else if(ch == '-'){
						sum -= Double.parseDouble(str.toString());
					} else if(ch == '*'){
						sum *= Double.parseDouble(str.toString());
					} else if(ch == '/'){
						sum/=Double.parseDouble(str.toString());
					}
					str = new StringBuilder();
				}
				ch = s.charAt(i);
			} else {
				str.append(s.charAt(i));
			}
		}
		// 計算最後一個數
		if (ch == '+') {
			sum += Double.parseDouble(str.toString());
		} else if(ch == '-'){
			sum -= Double.parseDouble(str.toString());
		} else if(ch == '*'){
			sum *= Double.parseDouble(str.toString());
		} else if(ch == '/'){
			sum/=Double.parseDouble(str.toString());
		}
		System.out.println(sum);
	}

}

輸出

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章