2014-01-21 4 views
0

모든 짝수 만을 찾아야하는 문제를 해결하려고합니다. 나는 5 개의 숫자를 입력해야하고 숫자 중 어느 것도 인쇄하지 않으려는 경우 배열에 짝수를 찾을 수 없습니다. 내 문제는 for 루프를 반복 할 때 코드가 인쇄되는 것입니다. 배열에서 짝수를 찾을 수 없습니다. 짝수가 아닌 각 번호에 대해 인쇄합니다. 이는 분명히 가정 한 것과 다릅니다. 힌트가 필요해. 이것은 숙제 btw가 아니며 Programmr.com에서 발견 된 문제입니다. 당신이 boolean true로를 설정하고 if condiion에서 그 boolean을 확인보다 even를 발견하는 경우for 루프의 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

당신은 false 으로 여기 boolean, 초기화 boolean 변수를 사용할 수 있습니다 : 여기 내 코드입니다.

예 :

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"); 

    } 

가}