黑马程序员技术交流社区

标题: if-else 循环 [打印本页]

作者: samuelziul    时间: 2013-7-5 18:06
标题: if-else 循环
请问如果代码中用到if-else ,  想将其中的if 部分或者else部分的语句循环,譬如用户输入错了,继续要他输入,直到输入对为止,要如何实现?

作者: 风雪再现    时间: 2013-7-5 18:33
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"){}  //只要用户名不正确,就一直循环让输入用户名,密码也是一样
作者: lanbuohan    时间: 2013-7-5 19:38
为什么不考虑一下try呢,不管其输入的是否与你所要的相同,都能继续的执行,而且你还能知道错误的地方
作者: dongqinglove    时间: 2013-7-5 20:08
就按照一楼的写法,先搞个死循环,然后验证用户名和密码是否正确,不过我建议一楼的写法最好是用break,而不是return
作者: 许大虾    时间: 2013-7-6 13:33
在if里面嵌套while 或者 for 或者switch    然后调用return  或者break 方法

作者: changweihua    时间: 2013-7-6 16:39
把判断输入单独写个方法,输入出错,就不停的调用方法,正常直接输出
作者: XXL    时间: 2013-7-7 12:48
本帖最后由 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通过检测方法的返回值决定是否继续循环
         





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