簡體   English   中英

Java中如何使用邏輯運算符

[英]How to use logical operator in Java

java 如何使用 java 中的邏輯運算符評估以下代碼?

public class ApaBoleh{
  public static void main(String[]args){
      for(int i=1;i<=100;i++){
          if(i%3==0){
              System.out.print("Apa,");
          }else if (i%5==0){
              System.out.print("Boleh,");
          }else if ((i%3==0)&&(i%5==0)){
              System.out.print("ApaBoleh,");
          }
         System.out.print(i+",");
      }
  }
}

當我運行此代碼時,以下行不會運行}else if ((i%3==0)&&(i%5==0)){

這是因為您使用else來排除該條件解析為 true 之前的任何內容。 首先嘗試檢查最獨特的情況:

if (( i%3 == 0 ) && ( i%5 == 0 )){
    System.out.print("ApaBoleh,");
}else if ( i%3 == 0){
    System.out.print("Apa,");
}else if ( i%5 == 0){
    System.out.print("Boleh,");
}

System.out.print(i+",");

你有一個else 前面的if (s) 都是true 只輸入第一個。 我會將測試保存到局部變量,因為重復所有這些模運算不是很干凈。 喜歡,

for (int i = 1; i <= 100; i++) {
    boolean mod3 = i % 3 == 0, mod5 = i % 5 == 0;
    if (mod3 && mod5) {
        System.out.print("ApaBoleh,");
    } else if (mod3) {
        System.out.print("Apa,");
    } else if (mod5) {
        System.out.print("Boleh,");
    }
    System.out.print(i + ",");
}

另請參閱FizzBuzz 挑戰

運行前

else if ((i%3==0)&&(i%5==0)){ System.out.print("ApaBoleh,");}

它運行

if(i%3==0){
    System.out.print("Apa,");
}else if (i%5==0){
    System.out.print("Boleh,");

所以你必須把

else if ((i%3==0)&&(i%5==0)){ System.out.print("ApaBoleh,");}

以上兩個之前

當然它不會運行,當你的前兩個 if 條件之一評估為true時,你永遠不會遇到那個 if 塊。

例如,如果i = 3 ,那么您的第一個條件if(i%3==0)將評估為true並且您的打印輸出Apa ,因為條件的 rest 是else if java 代碼將停止處理並且 Z34D1F725A07423FE1C889F448B33D21F46Z 代碼將停止處理並且 Z34D1F725A07423FE1C889F448B33D21F46Z 將停止處理並且 Z34D1F725A07423FE1C889F448B33D21F46Z 到下一個 Z34D1F91FB2E5A8B9循環迭代。 同樣,如果i = 5 ,則第一個條件將評估為false ,第二個條件if(i%5==0)將評估為true ,並且不會繼續下一個else if

因此,如果您之前的任何一個條件評估為true ,您將無法達到第三個條件。

除此之外,如果您必須刪除前兩個if語句並僅按如下方式評估該條件:

public class ApaBoleh{
  public static void main(String[]args){
    for(int i=1;i<=100;i++){
      if ((i%3==0)&&(i%5==0)){
        System.out.print("ApaBoleh,");
      }
     System.out.print(i+",");
    }
  }
}

然后,如果i = 3它將評估為false ,因為它會將i%3==0評估為true ,然后 go 將i%5==0評估為falsetruefalse = false )。

然后,如果i = 15它將評估為true ,因為它將評估i%3==0true ,然后 go 將i%5==0評估為truetruetrue = false )。

}else if ((i%3==0)&&(i%5==0)){中的條件在 i%3 等於 0 或 i%5 等於 0 時評估為真,因此,如果您真的想要}else if ((i%3==0)&&(i%5==0)){運行你可以使用}if ((i%3==0)&&(i%5==0)){而不是它,或者您至少應該將它放在}else if (i%5==0){之上,或者您可以像其他人告訴我的那樣使用它:

public class ApaBoleh{
    public static void main(String[]args){
        for(int i=1;i<=100;i++){
            if ((i%3==0)&&(i%5==0)){
                System.out.print("ApaBoleh,");
            }else if (i%5==0){
                System.out.print("Boleh,");
            }else if(i%3==0){
                System.out.print("Apa,");
            }
            System.out.print(i+",");
       }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM