2016-01-21 95 views
0

我的任務是返回一個布爾表達式,如果沒有從一個數組元素包含2或3錯誤布爾聲明

boolean no23(int[] nums) 
{ 
boolean no23 = false; 

for (int i=0; i<2; i++) 
{ 
    if (nums[i]==2 || nums[i]==3) 
    { 
    no23 = false; 
    } 
    else 
    { 
    no23 = true; 
    } 
} 
return no23; 
} 

我的問題是:如果第一個數字是3,我得到了假的回來了,但如果第二個數字是5,我說的是真的。所以最終的回報是真實的,這是一個錯誤。

我該如何解決這個問題?

感謝您的幫助。

+0

返回一個布爾表達式爲TRUE,對不起:-) – Michael

+0

關於這一行:'布爾no23(INT [] NUMS)'1)如何定義'boolean'? 2)參數的正確格式是:'int nums []',所以代碼不能編譯。關於代碼邏輯。強烈建議:將返回變量初始化爲「true」並刪除「else」代碼塊。在'if'代碼塊中,在將返回變量設置爲'false'後,通過'break;'退出循環 – user3629249

回答

0

no23 = false;之後放一個break;,因爲一旦它是假的,它永遠是假的,你不需要再去了。

此外,如果將no23初始化爲true,則不需要在循環中繼續設置它,並且可以完全刪除else子句。

一旦你這樣做,你可能會意識到你根本不需要no23。如果在函數的末尾找到2或3和return true;,則可以使用return false;,因爲如果它在循環中完成所有工作,則它沒有找到2或3.如果在該函數的末尾找到2或3,並且爲return true;,現在則爲return false;。你有這樣的:

boolean no23(int[] nums) 
{ 
    for (int i=0;i<2;i++) 
    { 
     if (nums[i]==2 || nums[i]==3) 
     { 
     return false; 
     } 
    } 
    return true; 
}