读书人

大家帮小弟我改下这段代码

发布时间: 2012-03-06 20:47:55 作者: rapoo

大家帮我改下这段代码!

C# code
public void login()        {            int[] sql = new int[5]{123,456,789,159,753};            Console.WriteLine("欢迎使用建设银行取款机");            Console.WriteLine("下面请输入您的密码");            int  PassWord= int.Parse(Console.ReadLine());            //验证密码            for (int i = 0; i < sql.Length; i++)            {                if (PassWord == sql[i])                {                    Console.WriteLine("密码正确");                    break;                }                else                {                    Console.WriteLine("密码输入有错,请重新输入");                }            }

我知道是循环那里出问题 如果是sql[0]的话就提示正确,之后如果输入像456的话先要验证sql[0]就会说密码错误,然后才验证sql[1],此时才认为是密码正确。这样就出现了2个结果,该怎么改进了???

[解决办法]
加个变量,利用变量来判断密码是否正确。
public void login()
{
int[] sql = new int[5] { 123, 456, 789, 159, 753 };
Console.WriteLine("欢迎使用建设银行取款机");
Console.WriteLine("下面请输入您的密码");
int PassWord = int.Parse(Console.ReadLine());
bool isRight = false;
//验证密码
for (int i = 0; i < sql.Length; i++)
{
if (PassWord == sql[i])
{
isRight = true;
break;
}
}
if (isRight)
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码输入有错,请重新输入");
}
}
[解决办法]
C# code
        public void login()        {            int[] sql = new int[5] { 123, 456, 789, 159, 753 };            Console.WriteLine("欢迎使用建设银行取款机");            Console.WriteLine("下面请输入您的密码");            int PassWord = int.Parse(Console.ReadLine());            //验证密码            if (sql.ToList().Contains(PassWord))            {                Console.WriteLine("密码正确");            }            else             {                Console.WriteLine("密码输入有错,请重新输入");            }        }
[解决办法]
static void Main(string[] args)
{
int[] sql = new int[5] { 123, 456, 789, 159, 753 };
Console.WriteLine("欢迎使用建设银行取款机");
Console.WriteLine("下面请输入您的密码");
int PassWord = int.Parse(Console.ReadLine());
//验证密码
int flag = 0;
for (int i = 0; i < sql.Length; i++)
{
if (PassWord == sql[i])
{
Console.WriteLine("密码正确");
flag = 1;
break;
}
else
{
//Console.WriteLine("密码输入有错,请重新输入");
continue;
}
}
if (flag == 0)
{
Console.WriteLine("密码输入有错,请重新输入");
}

}
[解决办法]
bool bPass = false;
for (int i = 0; i < sql.Length; i++)
{
if (PassWord == sql[i])
{
bPass = true;
Console.WriteLine( "密码正确 ");
break;
}


}
if (!bPass)
{
Console.WriteLine( "密码输入有错,请重新输入 ");
//此处是让程序退出还是重新回到程序开始由你确定
}

[解决办法]


else
{
if(i==sql.Length-1)
Console.WriteLine("密码输入有错,请重新输入");
}
[解决办法]
除了楼上的方法,你也可以将else换成一个判断,判断i是否已经游走到循环末端了,如果是话就输出密码错误咯

读书人网 >C#

热点推荐