如何用JAVA寫加減法運算式

(1) 問題描述

定義簡易加減法運算式為不含任何刮號的運算式,只包含加減法運算子與整數數字運算元,例如 5 + 12 – 3 + 4 。請寫一個程式要求使用者輸入任意簡易加減法運算式,輸出運算結果 。

輸入說明

每行輸入一個運算式字串,運算子與運算元之間固定以單一空格分隔,字串長度不超過 50 。如果輸入字串 end 則結束程式執行。

輸出說明

將輸入之運算式計算結果輸出。

範例

Sample Input:

Sample Output:

2 + 3 – 1

5 - 2 + 1 – 2

end

2 個解答

評分
  • 6 年前
    最佳解答

    import java.io.*;

    public class a0520 {

    public static void main(String[] arg) throws IOException {

    try {

    System.out.println("請輸入要運算的式子:");

    int k = 0;

    BufferedReader br = new BufferedReader(new InputStreamReader(

    System.in));

    String[] temp = new String[51];

    String in = br.readLine();

    String[] tokens = in.split(" ");

    for (int i = 0; i < tokens.length; i++) {

    switch (tokens[i]) {

    case "*":

    if (k > 0) {

    temp[k - 1] = ""

    + (Double.parseDouble(temp[k - 1]) * Double

    .parseDouble(tokens[i + 1]));

    i++;

    } else {

    temp[k] = ""

    + (Double.parseDouble(tokens[i - 1]) * Double

    .parseDouble(tokens[i + 1]));

    k++;

    i++;

    }

    break;

    case "/":

    if (k > 0) {

    temp[k - 1] = ""

    + (Double.parseDouble(temp[k - 1]) / Double

    .parseDouble(tokens[i + 1]));

    i++;

    } else {

    temp[k] = ""

    + (Double.parseDouble(tokens[i - 1]) / Double

    .parseDouble(tokens[i + 1]));

    k++;

    i++;

    }

    break;

    default:

    temp[k] = tokens[i];

    k++;

    }

    }

    for (int i = 0; i < k; i++) {

    switch (temp[i]) {

    case "+":

    temp[0] = ""

    + (Double.parseDouble(temp[0]) + Double

    .parseDouble(temp[i + 1]));

    i++;

    break;

    case "-":

    temp[0] = ""

    + (Double.parseDouble(temp[0]) - Double

    .parseDouble(temp[i + 1]));

    i++;

    break;

    }

    }

    System.out.println(Double.parseDouble(temp[0]));

    } catch (Exception e) {

    System.out.println("您輸入非法字元,程式結束。");

    System.exit(0);

    }

    }

    }

    以下是程式碼截圖(若看不到圖片請點選觀看圖片):

    圖片參考:https://s.yimg.com/lo/api/res/1.2//YXBwaWQ9c2hhcmV...

    圖片參考:https://s.yimg.com/lo/api/res/1.2//YXBwaWQ9c2hhcmV...

    圖片參考:https://s.yimg.com/lo/api/res/1.2//YXBwaWQ9c2hhcmV...

    2015-05-21 20:46:25 補充:

    程式碼圖片連結:

    http://www.fotopu.com/image/834884

    http://www.fotopu.com/image/834885

    http://www.fotopu.com/image/834886

    參考資料: 信哥的愛, 信哥的愛
  • GIGI
    Lv 6
    6 年前

    很簡單阿

    作業要自己做阿

還有問題?馬上發問,尋求解答。