<%@ page contentType="text/html; charset=utf-8" %> Calculator

Calculator

<%! // 存運算元的值 float[] number = {0, 0}; // 在第幾個運算元 int i = 0; // 使用中的運算子 int oprator = 0; // 加法 void add() { number[0] += number[1]; } // 減法 void subtract() { number[0] -= number[1]; } // 乘法 void multiply() { number[0] *= number[1]; } // 除法 void divide() { number[0] /= number[1]; } // 取餘 void remainder() { number[0] %= number[1]; } //清除 void clear() { number[0] = 0; number[1] = 0; } %>






<% // 輸入的字元 try { String inputdata = request.getParameter("symbol"); if(inputdata == null) { inputdata = "0"; } if (inputdata.equals("CE")) { clear(); } // 如果是數字就累積輸入 else if (inputdata.equals("0") || inputdata.equals("1") || inputdata.equals("2") || inputdata.equals("3") || inputdata.equals("4") || inputdata.equals("5") || inputdata.equals("6") || inputdata.equals("7") || inputdata.equals("8") || inputdata.equals("9")) { // 輸入多位數字 number[i] *= 10; number[i] += Float.parseFloat(inputdata); } else { // 如果有選擇的運算子 if (oprator != 0) { switch (oprator) { case 1: add(); break; case 2: subtract(); break; case 3: multiply(); break; case 4: divide(); break; case 5: remainder(); break; } } if (inputdata.equals("=")) { // 清除運算子 oprator = 0; // 回到第一個運算元 i = 0; number[1] = 0; } else { // 回到第二個運算元 i = 1; number[1] = 0; // 把運算 if (inputdata.equals("+")) { oprator = 1; } else if (inputdata.equals("-")) { oprator = 2; } else if (inputdata.equals("*")) { oprator = 3; } else if (inputdata.equals("/")) { oprator = 4; } else if (inputdata.equals("%")) { oprator = 5; } } } // 印出現在的數字 out.println(number[i]); } catch (NumberFormatException e) { // 錯誤訊息 throw new NumberFormatException("您輸入的不是整數"); } %>