Проблемы с классом, объектами, методами и спросить снова l oop in Java - PullRequest
0 голосов
/ 18 июня 2020

Я знаю, как попросить пользователя повторить подсказку в случае, если была указана неверная информация, но не в этом случае. Обычно в «else» я могу снова ввести input.nextInt();, и он будет l oop, пока я не введу правильную информацию.
Здесь мой l oop находится в «классе», и я хочу, чтобы пользователь вводил значение в основном, но проверьте правильность информации в классе.
И если у вас есть несколько примеров или шаблонов различных методов повторного запроса ввода от пользователя, поделитесь, пожалуйста.

package bob;
import java.util.Scanner;

public class Training2 {
 public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    Voltage Vol=new Voltage();
    Vol.setV(input.nextInt());
}
static class Voltage {
    private int V;
    while (true) {
        if(V==220) {
            System.out.println("Your system is: " + V);
            break;
        }
        else if(V==380) {
            System.out.println("Your system is: " + V);
            break;
        }
        else {
            System.out.println("Try again");    
        }
    }
    public void setV(int V) {this.V=V;}
}
}

1 Ответ

0 голосов
/ 18 июня 2020

для этого типа вопросов вы можете использовать do-while. вот код

package bob;
import java.util.Scanner;

public class Training2 {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int inputValue;
        String inputStr;
        do {
            inputStr = scanner.nextLine();
            inputValue = Voltage.isValid(inputStr);
            if (inputValue != -1)
                System.out.println("Try again");
        } while (inputValue == -1);
        Voltage voltage = new Voltage(inputValue);
        System.out.println(voltage);
    }

    static class Voltage {
        private int value;

        public Voltage(int value) {
            this.value = value;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("Voltage{");
            sb.append("Value=").append(value);
            sb.append('}');
            return sb.toString();
        }

        public static int isValid(String valueStr) {
            try {
                int value = Integer.parseInt(valueStr);
                if (value == 220 || value == 380)
                    return value;
                return -1;
            } catch (NumberFormatException ex) {
                return -1;
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...