【发布时间】:2015-01-18 18:02:39
【问题描述】:
我正在尝试制作一个程序,要求电工输入伏特数。如果他/她输入的值大于20 或小于0,程序应该结束而不提示用户再次执行。现在,我有它,所以它会提示用户退出或继续,这是我不想要的。以下是该程序的内容:
public static void main(String[] args) {
Scanner kbReader = new Scanner(System.in);
String input = "";
int voltage;
boolean Loop = true;
while (Loop) {
System.out.print("Enter a numeric value of 0 to 20 volts");
input = kbReader.nextLine();
voltage = Integer.parseInt(input);
if (voltage < 0 || voltage > 20) {
System.out.println("Invalid input.");
}
else if (voltage >= 0 && voltage < 5) {
System.out.println("Insufficient Voltage - Replace Relay");
}
else if (voltage >= 5 && voltage < 15) {
System.out.println("Low Voltage");
}
else if (voltage >= 15 && voltage < 18) {
System.out.println("Voltage is in proper range");
}
else if (voltage >= 18 && voltage <= 20) {
System.out.println("Voltage is high - Check Transformer");
}
System.out.print("\n\nType \"Q\" to quit, or type nothing to go again.");
input = kbReader.nextLine();
if (input.equalsIgnoreCase("q")) {
Loop = false;
}
}
}
缩进似乎有点不对劲。我不太确定如何解决这个问题。
【问题讨论】:
-
循环中有两个
input = kbReader.nextLine()。这没有意义!!!您可能应该将第一个放在循环之外(在开始之前)。或者,您可以在第一次输入扫描之后立即放置退出条件,并摆脱第二次输入扫描。 -
使用 break 关键字。
-
看起来你应该替换 'System.out.println("invalid input");'用'休息;'
-
@AndyFedoroff 只有引号应该在引号中,恢复您的更改
标签: java if-statement while-loop