【发布时间】:2015-07-21 20:21:40
【问题描述】:
我是一名新的 Java 程序员,我正在编写一个程序,为 3 台打印机设置 3 个型号。如果用户输入错误的值,我希望它继续向用户询问型号。我让它工作,但前提是用户的第一个值是 3 台打印机之一的编号。如果第一个值不是可能的值之一,而第二个输入是它仍然不断重复循环。
package printing;
import java.util.Scanner;
public class newClass {
public static void main(String[] args) {
int count = 0;
String machine1 = "546";
String machine2 = "892";
String machine3 = "127";
Scanner s = new Scanner(System.in);
System.out.print("Model Number:");
String modelNumber = s.nextLine();
// increment count if first input value is wrong
if (!s.equals(machine1) || !s.equals(machine2) || !s.equals(machine3))
count++;
// if user inputs right value
while (true) {
if (modelNumber.equals(machine1)) {
System.out.println("Machine 1 is online");
break;
}
if (modelNumber.equals(machine2)) {
System.out.println("Machine 2 is online");
break;
}
if (modelNumber.equals(machine3)) {
System.out.println("Machine 3 is online");
break;
}
// keep looping if user does not input values for machine1, machine2 or machine3
do {
System.out.println("Try again");
System.out.print("Model Number:");
String modelNumberFalse = s.nextLine();
/* each time user gets value wrong the count variable goes up by 1 and
the loop breaks when count reaches 3 */
count++;
if (count == 3)
break;
} while (!s.equals(machine1) || (!s.equals(machine2)) || (!s.equals(machine3)) && (count < 2));
}
}
}
此外,每次用户输入错误的值时,我都希望计数变量递增,直到达到 3 并且 do while 循环中断,但在我输入错误值超过 3 次后,它一直在询问型号。
【问题讨论】:
-
如何在一个while循环中编写它?谢谢