gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 16:14:18 24 4
gpt4 key购买 nike

如果给出了错误的信息,我知道如何要求用户重复提示,但在这种情况下不行。通常在“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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com