首先给一段简单的计算器的代码,基本上所有的菜鸟都做过的

package com.kiritor;  import java.io.BufferedReader; import java.io.Console; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Scanner;  /**  * 一个简单的+,-,*,/运算器  * 通过控制台进行读入和计算  * 基于正整数的  * */ public class Calculator {    public static void main(String[] args) throws NumberFormatException, IOException { 	System.out.print("请输入第一个数字:"); 	BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 	double a = Double.parseDouble(reader.readLine()); 	System.out.print("\n请输入第二个数字:"); 	double b = Double.parseDouble(reader.readLine()); 	System.out.print("\n请输入运算符:"); 	String opr = reader.readLine(); 	double result=0 ; 	if(opr.equals("+")) 	{ 		result = a+b; 	} 	if(opr.equals("-")) 	{ 		result =a-b; 	} 	if(opr.equals("*")) 	{ 		result = a*b; 	} 	if(opr.equals("/")) 	{ 		result = a/b; 	}     System.out.println("结果为:"+result); }    } 
    上述代码若按照正确的输入是可以得出正确的结果的,

        不过真的没有问题了吗?

   代码毛病:

          1、变量命名规范

          2、分支判断的地方极不合理,计算机进行了3次无用功的判断!

          3、除法运算被除数为零的情况并未考虑!

          4、用户输入的不确定性,非法输入的处理没有,造成程序的稳定性差!


  代码进一步规范:

  

package com.kiritor;  import java.io.BufferedReader; import java.io.Console; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Scanner;  /**  * 一个简单的+,-,*,/运算器 通过控制台进行读入和计算 基于正整数的  * */ public class Calculator { 	public static void main(String[] args) { 		try { 			System.out.print("请输入第一个数字:"); 			BufferedReader reader = new BufferedReader(new InputStreamReader( 					System.in)); 			double num1 = Double.parseDouble(reader.readLine()); 			System.out.print("\n请输入第二个数字:"); 			double num2 = Double.parseDouble(reader.readLine()); 			System.out.print("\n请输入运算符:"); 			String opr = reader.readLine(); 			double result = 0; 			switch (opr) { 			case "+": 				result = num1 + num2; 				System.out.println("结果为:" + result); 				break; 			case "-": 				result = num1 - num2; 				System.out.println("结果为:" + result); 				break; 			case "*": 				result = num1 * num2; 				System.out.println("结果为:" + result); 				break; 			case "/": 				if (num2 == 0) { 					System.out.println("除数不能为零!"); 				} else { 					result = num1 / num2; 					System.out.println("结果为:" + result); 				} 				break; 			default: 				break; 			}  		} catch (Exception e) { 			// TODO: handle exception 		}  	} }