黑马程序员-神奇的标志位“Bool flag=false”

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qly2046/article/details/17448537

神奇的标志位“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();

        }

    }

}

第二题

要求用户输入用户名和密码,只要不是admin888888,就一直提示用户重新输入,知道正确为止?

namespace标志位问题2

{

    class Program

    {

        //要求用户输入用户名和密码,只要不是admin888888,就一直提示用户重新输入,知道正确为止?

        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();

 

        }

    }

}

总结:从上面两道题来看,标志位主要是起到了“分水岭”的作用,在程序中巧妙的将两种可能性分开,从而得出不同的结果。

一般用在程序内部的判断上。看到如此清晰的解释,小伙伴们是不是理解了,会用了呢?

展开阅读全文

没有更多推荐了,返回首页