黑马程序员技术交流社区

标题: do{}while();小心得 [打印本页]

作者: if_lee    时间: 2013-8-20 11:49
标题: do{}while();小心得
            
            
            do
            {
                Console.WriteLine("请输入用户名:");
              string  name = Console.ReadLine();
                Console.WriteLine("请输入密码:");
               string password = Console.ReadLine();
            } while (name != "admin" || password != "888");
            Console.ReadKey();
       这段代码是有问题    变量必须定义到do{}while();这段话的外面,不然会报错,局部变量问题

作者: EYE_SEE_YOU    时间: 2013-8-20 12:20
好像很厉害的样子,一定是世外高人吧
作者: if_lee    时间: 2013-8-20 12:29
小心得   求技术分啊
作者: 神之梦    时间: 2013-8-20 16:10
哥们,你这个不是java语言吧
作者: if_lee    时间: 2013-8-20 16:34
哥们儿  net
作者: pm324    时间: 2013-8-20 17:02
本帖最后由 pm324 于 2013-8-20 17:04 编辑

你这段代码不只是对变量作用域的理解有问题
仔细看看你的逻辑运算符,用错了吧?
判断用户名和密码应该是 “与”(&&)而不是”或“(||)吧?

作者: if_lee    时间: 2013-8-20 17:19
就是要实现这样的效果  没有说明必须是登录那种  呵呵呵
作者: if_lee    时间: 2013-8-20 17:19
就是要实现这样的效果  没有说明必须是登录那种  呵呵呵
作者: 许庭洲    时间: 2013-8-20 19:40
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test10
{
      calss Program
      {
            static void Main(string[] args)
            {
                    //要求用户输入用户名和密码,只要不是admin,888888就一直提示要求重新输入。
                    Console.WriteLine("请输入用户名");
                    string username = Console.ReadLine();
                    Console.WriteLine("请输入密码");
                    string password= Console.ReadLine();
                    do
                    {
                           Console.WriteLine("用户名,密码错误");
                           Console.WriteLine("请重新输入用户名");
                           username = Console.ReadLine();//在这里重新赋值的username在while可以用,因为是执行完了
                           // username = Console.ReadLine()又去while( username != "admin" || password != "888888")
                           Console.WriteLine("请重新输入密码");
                           password= Console.ReadLine();
                    }while( username != "admin" || password != "888888");
                    Console.ReadKey();
            }
      }
}

作者: if_lee    时间: 2013-8-20 21:33
为什么见到验证就非要“且”呢  习惯问题???
作者: pm324    时间: 2013-8-21 10:01
本帖最后由 pm324 于 2013-8-21 10:03 编辑
if_lee 发表于 2013-8-20 21:33
为什么见到验证就非要“且”呢  习惯问题???

看的不够仔细~ sorry~~
作者: haxyek    时间: 2013-8-21 13:39
变量的声明只声明一次,
    string  name = Console.ReadLine();
这句,既声明,又定义。。
如果进入循环那就是重复声明了~
作者: 苦咖啡    时间: 2013-9-3 18:10
是啊!我也是看到这个问题,原来是这样啊!局部变量。还有就是:while();中一定要用“||”而不能用“&&”不然程序会出错的。
作者: 胡达炜    时间: 2013-9-3 22:22
pm324 发表于 2013-8-20 17:02
你这段代码不只是对变量作用域的理解有问题
仔细看看你的逻辑运算符,用错了吧?
判断用户名和密码应该是  ...

1)变量作用域是有问题,do内部的,在while里面就失效;
2)看走眼了吧,这里是检查是不是重新输入密码来着,不是用“且”喔!






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