黑马程序员技术交流社区

标题: 关于flag=true [打印本页]

作者: 李龙祺    时间: 2012-12-9 20:25
标题: 关于flag=true
一段关于工资奖励机制的代码 Console.WriteLine("请输入对李四的评判,只能是大写A-B");
            string input = Console.ReadLine();
            decimal salary = 5000;
            bool flag = false;
            switch (input)
            {
                case "A":
                    salary += 500;
                    break;
                case "B":
                    salary += 200;
                    break;
                default:
                    Console.WriteLine("您的输入有问题");
                    flag = true;
                    break;
            }
            if (flag == false)
            {
                Console.WriteLine("李四的工资是:" + salary);
            }
            Console.ReadKey();
如果把bool flag=true; 效果是一样的,那是不是代码中的true和false没有真假意义的。
如果把default下的flag=true注释,作用消失。为何?
求解这个技巧原理?
作者: 许庭洲    时间: 2012-12-9 20:36
1. 如果把flag的值赋值为true后,就有可能输不出李四的工资了;
2.如果把default下的flag=true注释掉,程序就会输出异常的工资信息。
作者: 李龙祺    时间: 2012-12-9 20:45
许庭洲 发表于 2012-12-9 20:36
1. 如果把flag的值赋值为true后,就有可能输不出李四的工资了;
2.如果把default下的flag=true注释掉,程序 ...

1.我把flag赋值为true,代码运行也是对的。
2.的情况是不管用户输入是否正确都输出李四工资。
但都没问答我的问题啊。学长
作者: 刘亚龙    时间: 2012-12-9 21:27
不懂你的意思
1,bool flag=true,就不会输出李四的工资
2,default下的flag=true注释,会输出李四工资是5000啊
作者: 汪磊    时间: 2012-12-9 22:04
不能去掉,去掉过后程序有缺陷! 这里是为了当你输入的有问题的时候, 最后那条输出就不会执行, 也就是说当你输入的不是A和B的时候 提示完错误过后不会在输出李四个工资 , 这样程序才算正常!
作者: 李龙祺    时间: 2012-12-10 15:11
刷新 求解这个技巧的运行原理。
定义bool flag=false  flag= true 有什么区别 还是只是起到一个架桥的作用?
作者: 苏波    时间: 2012-12-10 21:52
1 :改为true的话,后面的if语句条件不成立,李四的工资将不会输出
2:将其注释后,当输入有问题是,if条件仍然成立,仍然会输出李四的工资是:5000

    修改后 虽然代码不会报错但是 作用消失,没有实现正确的功能
作者: 邵帅    时间: 2012-12-10 21:57
你改成true的话,你如果输入错误的工资,比如说字母什么的。报错的同时也会输出最后工资的那条语句,工资就是5000了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2