[英]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
評估為false
( true
和false
= false
)。
然后,如果i = 15
它將評估為true
,因為它將評估i%3==0
為true
,然后 go 將i%5==0
評估為true
( true
和true
= 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.