亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

do-while 循環有 3 個條件

do-while 循環有 3 個條件

叮當貓咪 2023-02-23 16:11:38
我陷入了 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(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)。我的預期結果是它可以檢索 (vehicleCondition.equals(motor), (vehicleCondition.equals(mobil), (vehicleCondition.equals(kosong)。
查看完整描述

5 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

創建一個方法來檢查條件:

private static boolean isValidVehiculeCondition(String vc) { 
   return !Arrays.asList("motor", "mobil", "baru").contains(vc.toLowerCase());
}

然后在它返回 true 時循環(即:輸入無效)

do {
    inputVehicleType();
} while(isNotValidVehiculeCondition(input.next()));


查看完整回答
反對 回復 2023-02-23
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

我認為您的代碼中有一點括號錯誤。您需要在 not 運算符周圍添加一個額外的括號。你的情況應該是


while (!(

  (vehicleCondition.equals(motor)) ||

  (vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong))

));


查看完整回答
反對 回復 2023-02-23
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

如果您刪除多余的括號,可能更容易發現您擁有的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));


查看完整回答
反對 回復 2023-02-23
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

您在 while 邏輯表達式中犯了一個錯誤

應該:

while (!((vehicleCondition.equals(motor)) || (vehicleCondition.equals(mobil)) || (vehicleCondition.equals(kosong))));



查看完整回答
反對 回復 2023-02-23
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

正確的條件是:

while (!(vehicleCondition.equals(motor) || 
         vehicleCondition.equals(mobil) || 
         vehicleCondition.equals(kosong)));

vehicleCondition也就是說,只要不等于 3 個預期值之一,您就應該留在循環中。


查看完整回答
反對 回復 2023-02-23
  • 5 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號