黑马程序员技术交流社区

标题: 显示密码为星号。我有一个疑问! [打印本页]

作者: ?﹪滾妳媽丶    时间: 2014-3-22 22:13
标题: 显示密码为星号。我有一个疑问!
今天看到基础加强第一课,那个密码显示星号有个问题搞不懂。
  Console.WriteLine("请输入密码");
            string ck = "";
            while (true)
            {
                ConsoleKeyInfo key;
                key = Console.ReadKey(true);

                if (key.KeyChar == '\r')
                {
                    break;
                }
                if (key.KeyChar != '\b') //&& key.KeyChar != ' ')
                {
                    Console.Write("*");
                }
                else if (ck.Length == 0)
                {
                    continue;
                }
                else
                {
                    Console.Write("\b \b");
                    ck = ck.Substring(0, ck.Length - 1);
                    continue;
                }

                ck=key.KeyChar+ck;
            }
            Console.WriteLine();
            Console.WriteLine("密码为{0}", ck);
            Console.ReadKey();
疑问:假如一出来就按回车键,提示密码为空或者不显示输出密码该怎么做。。
作者: 百川    时间: 2014-3-22 23:32
加一个if判断:即判断输入回车时ck.Length是否小于1。将你上面的代码中的:
if (key.KeyChar == '\r')
                {
                    break;
                }
改为:
if ((key.KeyChar == '\r') && (ck.Length < 1))
                {
                    ck = "空";
                    break;
                }
                else if (key.KeyChar == '\r')
                {
                    break;
                }

如果要不显示密码就改成:
if ((key.KeyChar == '\r') && (ck.Length == 0))
                {
                    ck = "";
                }
                else if (key.KeyChar == '\r')
                {
                    break;
                }






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