java - Java 中的类、对象、方法和再次询问循环的问题

标签 java while-loop

如果给出了错误的信息,我知道如何要求用户重复提示,但在这种情况下不行。通常在“else”中我可以再次输入 input.nextInt(); ,它会循环直到我输入正确的信息。
这里我的循环位于“类”中,我希望用户在 main 中输入值,但检查类中的信息是否正确。
如果您有一些重新请求用户输入的各种方法的示例或模板,请分享。

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;}
}
}

最佳答案

对于此类问题,您可以使用 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;
            }
        }
    }
}

关于java - Java 中的类、对象、方法和再次询问循环的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62445222/

相关文章:

java - 使用 Java 映射访问模式在 Mongo 中进行不同查询

java - 随机选择算法

c - 将值从队列插入堆栈

java - Android ExpandableListView 在应用程序中不可见

java - 需要使用 android studio 在复选框上应用时间调度程序

java - 打印出输入中的每个字符

C 哨兵循环问题

java - 使用java查找快乐数字: Nested while loop loops indefinitely

php - 使用 while 循环从 mysql 打印整个列

Java字符串匹配和replaceAll的区别在于匹配括号