A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© samuelziul 中级黑马   /  2013-7-5 18:06  /  1817 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问如果代码中用到if-else ,  想将其中的if 部分或者else部分的语句循环,譬如用户输入错了,继续要他输入,直到输入对为止,要如何实现?

6 个回复

倒序浏览
while (true)
            {
                Console.WriteLine("请输入用户名:");
                string strName = Console.ReadLine();
                Console.WriteLine("请输入密码:");
                string strPwd = Console.ReadLine();
                if (strName == "admin" && strPwd == "888888")
                {
                    Console.WriteLine("登录成功!");
                    return;
                }
                else
                {
                    Console.WriteLine("用户名或密码错误!请重新输入!");
                }
            }

            Console.ReadKey();




如果,你要if-else中进行循环,也可以用while比如:while(strName!="admiin"){}  //只要用户名不正确,就一直循环让输入用户名,密码也是一样
回复 使用道具 举报 1 0
为什么不考虑一下try呢,不管其输入的是否与你所要的相同,都能继续的执行,而且你还能知道错误的地方
回复 使用道具 举报
就按照一楼的写法,先搞个死循环,然后验证用户名和密码是否正确,不过我建议一楼的写法最好是用break,而不是return
回复 使用道具 举报
在if里面嵌套while 或者 for 或者switch    然后调用return  或者break 方法
回复 使用道具 举报
把判断输入单独写个方法,输入出错,就不停的调用方法,正常直接输出
回复 使用道具 举报
XXL 中级黑马 2013-7-7 12:48:26
7#
本帖最后由 XXL 于 2013-7-7 12:51 编辑

            string username=null;
            string password=null;
            do
            {
                Console.WriteLine("请输入用户名:");
                username = Console.ReadLine();
                Console.WriteLine("请输入密码:");
                password = Console.ReadLine();

            } while (!(username == "admin" && password == "123"));
            Console.WriteLine("登录成功!");
              
只要用户名不是admin密码不是123就会一直在循环里,就不能提示“用户名密码错误”了。可以把检测放到一个带返回值的方法里,在方法里写提示登录是否成功,再把方法放进while中,while通过检测方法的返回值决定是否继续循环
         
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马