Java Начинающий: проблемы nextLine, в то время как и если l oop ошибки - PullRequest
0 голосов
/ 16 апреля 2020

Привет, я начал Java 3 дня go, и я работаю над небольшим банковским счетом, чтобы спросить у пользователя его имя и баланс и распечатать некоторые сообщения на основе ввода. Мои проблемы начинаются с попытки проверить правильность имени пользователя. В любом случае вот код

// Код запускает пакет com.chief;

import java .util.Scanner;

publi c class Main {

public static void main(String[] args) {

    int minAmount = 500;

    Scanner userInput = new Scanner(System.in);
    /* String verifyName = "Yes";*/

    System.out.println("Please enter your Account Name and Balance");
    System.out.println("Account Name: ");


    //Username here
    String userName = userInput.nextLine();
    System.out.println("Balance: ");

    //Account balance here
    double balance = userInput.nextDouble();
    System.out.println("Account Name: " + userName);


    // Verification
    System.out.println("Please verify your username, enter Yes to accept or No to cancel");
    String verifyName = userInput.nextLine();

    while (verifyName.equals("Yes")) {
        if (balance < 500) {
            System.out.println("Your balance is below the minimum requirement of " + minAmount + " please top up");
            System.out.println("Thank you for banking with King Solomon Bank");
            }
        if (balance > 500){
            System.out.println("Good");
        }
    } 
}

}

Программа завершает работу после запроса от пользователя ввода Да или Нет, но я думаю, что это сработало при первой попытке. Поэтому я не могу ввести эту строку

Также у меня возникли проблемы с использованием ввода для verifyName для запуска циклов while и if. Любая помощь очень ценится. Спасибо

1 Ответ

0 голосов
/ 17 апреля 2020

Требуются следующие исправления:

    String verifyName = userInput.next(); // not nextLine()!

    if (verifyName.equalsIgnoreCase("Yes")) {  // you get to endless loop here, use case-insensitive comparison
...