5 回答

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊
創(chuàng)建一個方法來檢查條件:
private static boolean isValidVehiculeCondition(String vc) { return !Arrays.asList("motor", "mobil", "baru").contains(vc.toLowerCase()); }
然后在它返回 true 時循環(huán)(即:輸入無效)
do { inputVehicleType(); } while(isNotValidVehiculeCondition(input.next()));

TA貢獻(xiàn)1815條經(jīng)驗 獲得超13個贊
我認(rèn)為您的代碼中有一點括號錯誤。您需要在 not 運算符周圍添加一個額外的括號。你的情況應(yīng)該是
while (!(
(vehicleCondition.equals(motor)) ||
(vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong))
));

TA貢獻(xiàn)1821條經(jīng)驗 獲得超5個贊
如果您刪除多余的括號,可能更容易發(fā)現(xiàn)您擁有的while (!a || b || c)
是while (!(a || b || c))
.
do { ... } while (!(vehicleCondition.equals(motor) || vehicleCondition.equals(mobil) || vehicleCondition.equals(kosong)));
或者,等效地通過De Morgan 定律:while (!a && !b && !c)
do { ... } while (!vehicleCondition.equals(motor) && !vehicleCondition.equals(mobil) && !vehicleCondition.equals(kosong));

TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊
您在 while 邏輯表達(dá)式中犯了一個錯誤
應(yīng)該:
while (!((vehicleCondition.equals(motor)) || (vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong))));

TA貢獻(xiàn)1890條經(jīng)驗 獲得超9個贊
正確的條件是:
while (!(vehicleCondition.equals(motor) || vehicleCondition.equals(mobil) || vehicleCondition.equals(kosong)));
vehicleCondition
也就是說,只要不等于 3 個預(yù)期值之一,您就應(yīng)該留在循環(huán)中。
添加回答
舉報