Java 在3个条件下执行循环
我一直在使用do-while循环,这需要使用do-while循环,直到用户输入三个正确字符串中的一个 我试过这个Java 在3个条件下执行循环,java,while-loop,do-while,Java,While Loop,Do While,我一直在使用do-while循环,这需要使用do-while循环,直到用户输入三个正确字符串中的一个 我试过这个 Scanner input = new Scanner(System.in); String motor = "motor"; String mobil = "mobil"; String kosong = ""; String baru = "baru"; int tahun = Calendar.getInstance().get(Cale
Scanner input = new Scanner(System.in);
String motor = "motor";
String mobil = "mobil";
String kosong = "";
String baru = "baru";
int tahun = Calendar.getInstance().get(Calendar.YEAR);
do {
inputVehicleType();
vehicleCondition = input.next();
}
while (!(vehicleCondition.equals(motor)) || (vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong)));
System.out.println("SUCCED");
private static void inputVehicleType() {
System.out.println(Constant.HEADER);
System.out.println("Input Jenis Kendaraan Mobil/Motor --> (jenis [motor/mobil])");
titleFooter();
}
使用该语法,它只检索(vehicleCondition.equals)(motor)。
我的预期结果是,它可以检索(车辆条件.equals(motor),(车辆条件.equals(mobil),(车辆条件.equals(kosong)。正确的条件是:
while (!(vehicleCondition.equals(motor) ||
vehicleCondition.equals(mobil) ||
vehicleCondition.equals(kosong)));
i、 e.只要
车辆状况不等于3个期望值中的一个,您就应该留在环路中。正确的条件是:
while (!(vehicleCondition.equals(motor) ||
vehicleCondition.equals(mobil) ||
vehicleCondition.equals(kosong)));
i、 e.只要vehicleCondition
不等于3个期望值中的一个,您就应该留在循环中。如果删除多余的括号,可能更容易发现您有while(!a | b | c)
而不是while(!(a | b | c))
或者,当(!a&&!b&&!c)
时,等效地通过,:
如果删除多余的括号,则可能更容易发现您有while(!a | b | c)
而不是while(!(a | b | c))
或者,当(!a&&!b&&!c)
时,等效地通过,:
您在while逻辑表达式中犯了一个错误
应该是:
while (!((vehicleCondition.equals(motor)) || (vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong))));
您在while逻辑表达式中犯了一个错误
应该是:
while (!((vehicleCondition.equals(motor)) || (vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong))));
制定检查条件的方法:
private static boolean isValidVehiculeCondition(String vc) {
return !Arrays.asList("motor", "mobil", "baru").contains(vc.toLowerCase());
}
然后在返回true时循环(即:输入无效)
制定检查条件的方法:
private static boolean isValidVehiculeCondition(String vc) {
return !Arrays.asList("motor", "mobil", "baru").contains(vc.toLowerCase());
}
然后在返回true时循环(即:输入无效)
我认为您的代码中有一个小括号错误。您需要在not运算符周围添加一个额外的括号。您的条件应该是
while (!(
(vehicleCondition.equals(motor)) ||
(vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong))
));
我认为您的代码中有一个小括号错误。您需要在not运算符周围添加一个额外的括号。您的条件应该是
while (!(
(vehicleCondition.equals(motor)) ||
(vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong))
));