(续上篇)
大鸟说:“且先不说出题人的意思,单就你现在的代码,就有很多不足的地方需要改进。比如:
1、变量命名,你的命名就是ABCD,变量不带有任何具体含义,这是非常不规范的;
2、判断分支,你这样的写法,意味着每个条件都要做判断,等于计算机做了三次无用功;
3、数据输入有效性判断等,如果用户输入的是字符符号而不是数字怎么办?
4、如果除数时,客户输入了0怎么办?
这些都是可以改进的地方。”
“哦,说得没错,这个我以前听老师说过,可是从来没有在意过,我马上改,改完再给你看看。”
class Refactor { static void Main(string[] args) { try { Console.write("请输入数字A:"); string strNumberA = Console.ReadLine(); Console.write("请选择运算符号(+、-、*、/):"); string strOperate = Console.ReadLine(); Console.write("请输入数字B:"); string strNumberB = Console.ReadLine(); string strResult=""; switch(strOperate) { case "+": strResult = Convert.ToString(Convert.ToDouble(strNumberA) + Convert.ToDouble(strNumberB)); break; case "-": strResult = Convert.ToString(Convert.ToDouble(strNumberA) - Convert.ToDouble(strNumberB)); break; case "*": strResult = Convert.ToString(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB)); break; case "/": if(strNumberB != "0") strResult = Convert.ToString(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB)); else strResult = 除数不能为0; break; } Console.WriteLine("结果是:" + strResult); Console.ReadLine(); } catch(Exception ex) { Console.WriteLine("您的输入有错:" + ex.Message); } } }
大鸟:“吼吼,不错,不错,改得很快吗?至在目前代码来说,实现计算器是没有问题了,但这样写出的代码是否合出题人的意思呢?”
小菜:“你的意思是面向对象?”
大鸟:“哈,小菜非小菜也!”
(待续)
原文:http://www.cnblogs.com/fightingtong/p/3578869.html