日期:2014-05-18  浏览次数:20858 次

大家帮我改下这段代码!
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;
}