您的位置:首页 > 编程语言

代码无错便是优?

2013-02-24 14:14 204 查看
   首先给一段简单的计算器的代码,基本上所有的菜鸟都做过的

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
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 代码规范