Java簡單四則運算

丨Pluto_發表於2020-11-03

題目

從控制檯輸入只有一個四則運算子(+,-,,/)的簡單四則運算式子,然後輸出計算結果。例如輸入345+23,則輸出345+23=368;輸入20100,則輸出20*10=2000;如果輸入非四則運算式子就給出提示資訊。運算結果如下圖所示

提示:本篇文章是面對初學者文章,其中未使用java語言中類與物件的概念,沒有什麼深層次和抽象的內容。學習者只需一步一步閱讀就可理解程式的執行邏輯,與c語言程式設計較為相似。

不足需改正點:1.該程式沒有使用函式,即沒有將程式做模組化設計。2.該程式的判斷條件仍未完善,例如:其對含小數數尚不能進行判斷,且判斷條件相對繁瑣,需改進。

程式碼如下(示例):

import java.util.Scanner;

public class demo3_2b {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int i = 0;
		System.out.println("請輸入四則運算式:");
		String a = sc.nextLine();
		
		//判斷輸入的字串為簡單的四則運算
		
		/**
		 * 判斷理念 正確的簡單四則運算形式應該為 數字+符號+數字,那麼,反之不為此形式者就不是四則運算。
		 * 
		 *第一輪迴圈,判斷前面的字串是否為數字,找到第一個非數字字元,退出迴圈進行下一步判斷。  i為定位字串下標變數
		 * 對找到第一個非數字字元進行判斷,為四則運算子則進入下一輪迴圈。  
		 * 接下來剩餘的字串應全為數字,則只需設定判斷數字的條件即可。
		 */
		for (i=0; i<a.length(); i++) {
			if(i==0&&(a.charAt(i)<'0'||a.charAt(i)>'9')) {			//第一個字元必須為數字,否則不為四則運算,即提示並退出
				System.out.println("不是正確的四則運算式子!!!");
				System.exit(0);
			}			
			if(a.charAt(i)<'0'||a.charAt(i)>'9')
				break;
		}
		
		
		char b;
		int x;
		x = i;
		b = a.charAt(i);
		
		
		if(b=='+'||b=='-'||b=='*'||b=='/') {			//運算子判斷
			i++;										//位置下標後移
			for(;i<a.length();i++) {
				if(a.charAt(i)<'0'||a.charAt(i)>'9') {
					System.out.println("不是正確的四則運算式子!!!");
					System.exit(0);
					}
				}
			}
		else {
			System.out.println("不是正確的四則運算式子!!!");
			System.exit(0);
		}
		
		//分離字元 將數字和符號分離x,提取字串中的數字
		String c = a.substring(0, x);
		String d = a.substring(x+1, a.length());
		
		//此處提取出的數字為字串型,所以需要對其轉化
		//強制型別轉化,將string型轉化成int
		double e = Integer.parseInt(c);
		double f = Integer.parseInt(d);
		
		double s=0;
		
		
		//使用switch語句 尋找到其對應的運算規則,完成運算。此處也可以使用if-else
		switch(b) {
		case '+':
			s = e+f;
			System.out.println(e+"+"+f+"="+s);
			break;
		case '-':
			s = e-f;
			System.out.println(e+"-"+f+"="+s);
			break;	
		case '*':
			s = e*f;
			System.out.println(e+"*"+f+"="+s);
			break;
		case '/':
			if(f==0) {
				System.out.println("除數不能為零!!!");
				break;
			}
			else {
				s = e/f;
				System.out.println(e+"/"+f+"="+s);
				break;
			}
		default:
			System.out.println("不正確的四則運算式子!");
			sc.close();			//代表關閉輸入流,不然會有警告
		}
		
		
	}
	
}


在這裡插入圖片描述

在這裡插入圖片描述

相關文章