神奇的标志位“Bool flag=false” 第一次接触标志位,是在苏坤老师讲的C#基础视频中,感觉标志位很神奇。为了充分理解这一知识点,我决定写篇博客对此总结一下,以便加深印象,更加方便广大网友日后使用。先写几个题让大家了解了解,然后总结出规律。 第一题:李四的年终评定:如果被评为A级,则工资涨500元;B级则涨200元;C级不涨不扣;D级扣200元;E级扣500元。设李四的原工资为5000元,输入评定级别,然后显示李四工资? namespace 标志位问题1 { class Program { static void Main(string[] args) { Console.WriteLine("请输入李四的级别?只限A-E"); string input = Console.ReadLine(); decimal gongzi = 5000m; bool flag = false;//定义标志位 if (input == "A") { gongzi += 500; } else if (input == "B") { gongzi += 200; } else if (input == "C") { gongzi += 0;//或者不写 } else if (input == "D") { gongzi -= 200; } else if (input == "E") { gongzi -= 500; } else { Console.WriteLine("输入有误,只能输入大写的A-E"); flag = true;//使用标志位 } if (flag == false)//使用标志位 { Console.WriteLine("李四的工资是:{0}", gongzi); } Console.ReadKey(); } } } 第二题要求用户输入用户名和密码,只要不是admin和888888,就一直提示用户重新输入,知道正确为止? namespace 标志位问题2 { class Program { //要求用户输入用户名和密码,只要不是admin和888888,就一直提示用户重新输入,知道正确为止? static void Main(string[] args) { string name; string password; bool flag = false;//定义标志位 do { flag = false;//使用标志位 Console.WriteLine("请输入用户名!"); name = Console.ReadLine(); Console.WriteLine("请输入密码!"); password = Console.ReadLine(); if (name != "admin" || password != "888888") { Console.WriteLine("用户名和密码错误,请重新输入!"); flag = true;//使用标志位 } } while (flag); Console.WriteLine("恭喜你,输入正确!"); Console.ReadKey(); } } } 总结:从上面两道题来看,标志位主要是起到了“分水岭”的作用,在程序中巧妙的将两种可能性分开,从而得出不同的结果。一般用在程序内部的判断上。看到如此清晰的解释,小伙伴们是不是理解了,会用了呢? |