为什么我的代码接受了输入但仍然打印出错误?
Why does my code accept the input but still prints out the error?
一些背景:这是一个登录系统,它检查文本文件中的输入。我为此使用 list<> 和一个 foreach 循环。如果它与保存的行相匹配,那么它将是有效的。因此,如果不是,则打印出:一条无效消息。
此文本文档中有两行,程序按应有的方式读取了所有行,并且它是有效的等等。第一行没有打印出 "not valid message" 但第二行打印出来并且仍然可以接受.
string containDetails = firstName + " " + lastName + " " + password;
List<string> lines = File.ReadAllLines (@"D:\LoginSystemFolder\UserDetailFolder\Users.txt").ToList ();
foreach (var l in lines) {
if (l.Equals (containDetails)) {
Console.WriteLine("Login was a success!");
ls.MainMenu ();
}
else if(!l.Equals(containDetails) {
Console.WriteLine ("The login details are not valid. Are you sure they're correct?");
}
}
您应该在找到循环后退出循环,并且最好将下一步移到外面。此外,您的代码在最后一个 If
语句中缺少括号。请注意我在示例中如何使用实际字符串,以便更清楚预期的内容......这有助于人们更好地理解问题。调试您的代码会很容易地告诉您您的逻辑在哪里不起作用。
string containDetails = "Mark Morgan 123";
List<string> lines = new List<string>() {"Mark Morgan 123", "John Snow 456"};
bool successfulLogIn = false;
foreach (var l in lines) {
if (l.Equals (containDetails)) {
successfulLogIn = true;
break; //exit loop
// ls.MainMenu (); MOVING THIS OUTSIDE OF LOOP
}
}
if(successfulLogIn){
Console.WriteLine("Login was a success!");
// ls.MainMenu (); //call this here
}else{
Console.WriteLine ("The login details are not valid. Are you sure they're correct?");
}
一些背景:这是一个登录系统,它检查文本文件中的输入。我为此使用 list<> 和一个 foreach 循环。如果它与保存的行相匹配,那么它将是有效的。因此,如果不是,则打印出:一条无效消息。
此文本文档中有两行,程序按应有的方式读取了所有行,并且它是有效的等等。第一行没有打印出 "not valid message" 但第二行打印出来并且仍然可以接受.
string containDetails = firstName + " " + lastName + " " + password;
List<string> lines = File.ReadAllLines (@"D:\LoginSystemFolder\UserDetailFolder\Users.txt").ToList ();
foreach (var l in lines) {
if (l.Equals (containDetails)) {
Console.WriteLine("Login was a success!");
ls.MainMenu ();
}
else if(!l.Equals(containDetails) {
Console.WriteLine ("The login details are not valid. Are you sure they're correct?");
}
}
您应该在找到循环后退出循环,并且最好将下一步移到外面。此外,您的代码在最后一个 If
语句中缺少括号。请注意我在示例中如何使用实际字符串,以便更清楚预期的内容......这有助于人们更好地理解问题。调试您的代码会很容易地告诉您您的逻辑在哪里不起作用。
string containDetails = "Mark Morgan 123";
List<string> lines = new List<string>() {"Mark Morgan 123", "John Snow 456"};
bool successfulLogIn = false;
foreach (var l in lines) {
if (l.Equals (containDetails)) {
successfulLogIn = true;
break; //exit loop
// ls.MainMenu (); MOVING THIS OUTSIDE OF LOOP
}
}
if(successfulLogIn){
Console.WriteLine("Login was a success!");
// ls.MainMenu (); //call this here
}else{
Console.WriteLine ("The login details are not valid. Are you sure they're correct?");
}