小菜编程成长记(二 代码规范、重构)

(续上篇) 
        大鸟说:“且先不说出题人的意思,单就你现在的代码,就有很多不足的地方需要改进。比如变量命名,你的命名就是ABCD,变量不带有任何具体含义,这是非常不规范的;判断分支,你这样的写法,意味着每个条件都要做判断,等于计算机做了三次无用功;数据输入有效性判断等,如果用户输入的是字符符号而不是数字怎么办?如果除数时,客户输入了0怎么办?这些都是可以改进的地方。”
  “哦,说得没错,这个我以前听老师说过,可是从来没有在意过,我马上改,改完再给你看看。”

 

class Program
{
    
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);
        }

    }

}


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

(待续)


      

posted on 2006-08-30 09:49 伍迷 阅读(9819) 评论(16) 编辑 收藏

评论

#1楼  回复 引用   

有道理,支持!@_@~~
2006-09-22 09:56 | 拉力机[未注册用户]

#2楼  回复 引用   

catch (Exception ex)
{
Console.WriteLine("您的输入有错:" + ex.Message);
}

诧异
2006-09-24 05:06 | skyblue[未注册用户]

#3楼[楼主]  回复 引用 查看   

@skyblue
这样写的目的是只想 简化 用户输入时输入了非数字字符等错误的判断。以免在Convert.ToDouble()时报错。
2006-09-24 09:10 | 伍迷      

#4楼  回复 引用   

恩!不错,不错!确实不错
catch (Exception ex)
{
MessageBox.show("出现异常:"+ex.Message);
}
唉!一样一样!

2007-04-30 09:06 | 读者[未注册用户]

#5楼  回复 引用   

恭喜你!运行通过!呵呵
2007-04-30 09:09 | 读者[未注册用户]

#6楼  回复 引用   

To: 笼民
任何东西都不是绝对的,像这种很单纯而小的项目,匈牙利命名法没有什么不适合的。

To: 伍迷
不过和别人一样,感觉try-catch不爽(指针对异常机制)。这里switch-case少个default,别人虽然看到要输入+-*/,但不一定哦。就像上面要try-catch非数值一样...
2008-01-14 22:24 | yarco[未注册用户]

#7楼[楼主]  回复 引用 查看   

@yarco
你说得有道理,此代码有更好的表现方式。
2008-01-14 22:39 | 伍迷      

#8楼  回复 引用   

是啊 让我想起了细节决定成败!
2008-05-21 12:03 | 念时回复[未注册用户]

#9楼  回复 引用   

大三结束,看了此文及评论,真是自惭形秽.以后得多上来看看了,真的能学习很多.
同时,我在思索,怎样才能比较有效地提高编程能力呢?请各位师长帮忙解答.
2008-06-13 20:57 | 白菜虫[未注册用户]

#10楼  回复 引用   

最后输出完结果,为什么又读一行啊?
2008-07-18 23:09 | 菜[未注册用户]

#11楼[楼主]  回复 引用 查看   

@菜
为的是让控制台不要关闭。
2008-07-18 23:21 | 伍迷      

#12楼  回复 引用   

编程其次,思想关键呀。
2008-11-26 16:08 | teat[未注册用户]

#13楼  回复 引用 查看   

原来大话设计模式作者就是您?
2010-05-12 14:24 | 徐培华      
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 490094 kqHxVcpqqXE=

导航

公告

    《大话数据结构》第三次印刷已将勘误中的错误修正,预计在2011年12月在各大网上书店中有售。具体时间由网店决定,我也不清楚,如果有买到的朋友能否给我发封邮件呀。再次向已经购买第一二次印刷的读者说一声抱歉,给您要花时间修正错误添麻烦了,当然您们在花费二十多分钟的修改后就能尽早阅读本书,也算是有遗憾后值得欣慰的地方!


联系邮箱:chengjielong#163.com
(中间“#”换成“@”)


新浪微博:http://weibo.com/cj723


本人《大话数据结构》2011年6月简体中文版由清华大学出版社出版,繁体中文版由台湾悦知文化出版



简体中文版


繁体中文版


本人因《大话设计模式》而获得51CTO网站主办的"2008年十大IT图书最佳原创作者奖" ;《大话设计模式》获互动出版网评选的2008年度十大畅销经典第4名;当当网计算机/网络类2008年度畅销榜第6名



简体中文版


繁体中文版
昵称:伍迷
园龄:5年5个月
荣誉:推荐博客
粉丝:669
关注:18

搜索

 

常用链接

随笔分类(165)

随笔档案(138)

相册

朋友

积分与排名

  • 积分 - 535943
  • 排名 - 107

最新评论

阅读排行榜

推荐排行榜