黑马程序员技术交流社区
标题: 神奇的标志位“Bool flag=false” [打印本页]
作者: qly2046 时间: 2013-12-22 14:23
标题: 神奇的标志位“Bool flag=false”
神奇的标志位“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();
}
}
}
总结:从上面两道题来看,标志位主要是起到了“分水岭”的作用,在程序中巧妙的将两种可能性分开,从而得出不同的结果。一般用在程序内部的判断上。看到如此清晰的解释,小伙伴们是不是理解了,会用了呢?
作者: 好运不会眷顾傻 时间: 2013-12-22 20:33
这个很好理解,而且一般也不是你这样写的,都是用方法封装起来,然后再Main方法直接调用方法名,这个应该是老师没讲方法之前用的方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |