4 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
跑步前
else if ((i%3==0)&&(i%5==0)){ System.out.print("ApaBoleh,");}
它運(yùn)行
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,");}
在上面兩個(gè)之前

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
你有一個(gè)前面的兩個(gè)else都是; 僅輸入第一個(gè)。我會(huì)將測(cè)試保存到局部變量中,因?yàn)橹貜?fù)所有這些模數(shù)運(yùn)算并不是很干凈。喜歡,iftrue
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 + ",");
}

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
這是因?yàn)槟脕?lái)else排除該條件之前解析為 true 的任何內(nèi)容。首先嘗試檢查最獨(dú)特的情況:
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+",");

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
當(dāng)然它不會(huì)運(yùn)行,當(dāng)你的前兩個(gè) if 條件之一評(píng)估為 時(shí)true,你將永遠(yuǎn)不會(huì)到達(dá)該 if 塊。
例如,如果i = 3那么您的第一個(gè)條件if(i%3==0)將計(jì)算為true并且您的打印輸出Apa,因?yàn)槠溆鄺l件是else ifjava代碼將停止處理并進(jìn)入下一個(gè)循環(huán)迭代。類(lèi)似地,如果i = 5那么第一個(gè)條件將計(jì)算為false,第二個(gè)條件if(i%5==0)將計(jì)算為true并且不會(huì)繼續(xù)到下一個(gè)條件else if
因此,如果您之前的任何一個(gè)條件評(píng)估為,true您將不會(huì)達(dá)到第三個(gè)條件。
除此之外,如果您必須刪除前面的兩個(gè)if語(yǔ)句并且僅按如下方式評(píng)估該條件:
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+",");
}
}
}
然后 ifi = 3它將計(jì)算為false因?yàn)樗鼘⒂?jì)算i%3==0為true然后繼續(xù)計(jì)算i%5==0為false(true和false= false)。
然后 ifi = 15它將計(jì)算為true因?yàn)樗鼘⒂?jì)算i%3==0為true然后繼續(xù)計(jì)算i%5==0為true(true和true= false)。
添加回答
舉報(bào)