Я считаю, что что-то не так с моим первым циклом while. Как мне это исправить?
Я создаю программу, которая будет запрашивать у пользователей имя пользователя и пароль. Там имя пользователя и пароль сохраняются в файле, и программа будет искать в этом файле точную информацию. Если информация неверна 3 раза подряд, программа остановится. Моя программа не работает даже тогда, когда информация неверна. Я все время получаю неверное сообщение. Я не уверен, что это неправильно, но я думаю, что это мой первый цикл while. Мне бы не помешала помощь в его отладке. Ниже приведен мой код:
import java.io.*; import java.util.Scanner; public class LoginPage { public static void main(String[] args) throws IOException { String answ = ""; String user; String pass; boolean dog = true; int counter = 0; Scanner keyboard = new Scanner(System.in); System.out.println("Welcome! This program will allow you to sign in with a username and password you created."); System.out.println("If you fail to login correctly 3 times, this program will terminate."); System.out.print("Would you like to sign in?(Y/N): "); answ = keyboard.nextLine(); if(answ.equalsIgnoreCase("N")) { System.out.print("Goodbye!"); System.exit(0); } while(dog) { System.out.print("What is your username?: " ); user = keyboard.nextLine(); System.out.print("What is your password?: "); pass = keyboard.nextLine(); if(searchInfo(user) == false || searchInfo(pass) == false) { counter ++; System.out.println("This is invalid. Please try again."); if(counter==3) { System.out.println("You have attempted you max amount of tries. This program will now end."); System.exit(0); } } else if (searchInfo(user) == true || searchInfo(pass) == true) { dog = false; } } System.out.print("Congrats! You successfully signed in!"); } public static boolean searchInfo(String info)throws IOException { Scanner txtscan = new Scanner("loginInfo.txt"); boolean thingy = true; while(txtscan.hasNextLine()) { String str = txtscan.nextLine(); if(str.equals(info)) { thingy = true; } else { thingy = false; } } return thingy; } }
Что я уже пробовал:
Я несколько раз пытался изменить свой цикл while, но это не сработало.
Patrice T
- Я все время получаю неверное сообщение."
из вашего кода или чего-то еще?
скажи сообщение.
Noneyabees
Так что это мое собственное сообщение об ошибке, которое я создал в коде, указывая, что информация недействительна. Я копирую и вставляю из файла, который сохраняет информацию об имени пользователя и пароле. Так что, по моей логике, я не должен получать это сообщение об ошибке, потому что информация верна.
Patrice T
смотрите мое решение.