zoukankan      html  css  js  c++  java
  • 代码规范、重构 -03

    (续上篇) 
          大鸟说:“且先不说出题人的意思,单就你现在的代码,就有很多不足的地方需要改进。比如:

    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);
            }
        }
    }
    View Code

      大鸟:“吼吼,不错,不错,改得很快吗?至在目前代码来说,实现计算器是没有问题了,但这样写出的代码是否合出题人的意思呢?”
            小菜:“你的意思是面向对象?”
            大鸟:“哈,小菜非小菜也!”

    (待续)

  • 相关阅读:
    vtk体绘制时采样的起点使用噪声纹理来进行扰动
    转:轻松搞死VS
    虚拟华师(UDK)
    虚拟手术中的血流模拟(Physx+OpenGL)
    要找工作了,研究工作得暂停了
    MC+多个emitter成功把撕裂场景基本解决了
    鸭梨很大
    这世界好人多啊
    JS代码的格式化和压缩
    FusionCharts使用实例
  • 原文地址:https://www.cnblogs.com/fightingtong/p/3578869.html
Copyright © 2011-2022 走看看