2014-01-21 74 views
0

我試圖解決一個問題,我需要找到所有的偶數只有。我需要輸入5個數字,如果沒有數字是我想要打印在數組中找不到偶數。 所以我的問題是當我遍歷for循環,我的代碼打印偶數在數組中找不到。它打印每個非偶數,這不是它想要做的事情。我需要一些提示。這不是家庭作業btw,這是Programmr.com上發現的一個問題。這裏是我的代碼:關於for循環遍歷數組中的「else」語句

import java.util.Scanner; 

public class ArrayEven { 

    public static void main(String args[]) { 
    @SuppressWarnings("resource") 
    Scanner scanner = new Scanner(System.in); 
    int x, arr[] = new int[5]; 

    for (int i = 0; i < arr.length; i++) { 
     arr[i] = scanner.nextInt(); 
     if (i == 4) 
     break; 

    } 

    for (int i = 0; i < arr.length; i++) { 

     x = arr[i] % 2; 

     if (x == 0) { 

     System.out.println(arr[i]); 

     } 

     else if (x != 0) { //this is obviously wrong. Do I need another for-loop for this? 

     System.out.println("Even number not found in array."); 

     } 

    } 

    } 

} 

回答

3

可以使用boolean這裏, 初始化boolean變量與false 如果您發現有任何even不是設置booleantrue 並檢查booleanif condiion。

例子:

boolean isAvailble = false; 
... 
// Some code 
... 
for (int i = 0; i < arr.length; i++) { 
     x = arr[i] % 2; 
     if (x == 0) { 
     System.out.println(arr[i]); 
     isAvailble = true; 
     } 
} 

if (! isAvailable) { 
    System.out.println("Even number not found in array."); 
} 
+1

你們是真棒。它的工作原理現在確實很有意義。 – deathshot

+1

快樂,我們可以幫助別人...... :) –

1
public static void main(String args[]) { 
@SuppressWarnings("resource") 
Scanner scanner = new Scanner(System.in); 
int x, arr[] = new int[5]; 

for (int i = 0; i < arr.length; i++) { 
    arr[i] = scanner.nextInt(); 
    if (i == 4) 
    break; 

} 
boolean evenFound = false; 

for (int i = 0; i < arr.length; i++) { 

    x = arr[i] % 2; 

    if (x == 0) { 

    System.out.println(arr[i]); 
    evenFound = true; 

    } 

} 
if(!evenFound){ 
    System.out.println("Not found"); 

    } 

}