我正在尝试解决一个仅需要查找所有偶数的问题。我需要输入5个数字,如果所有数字都不是偶数,我要打印在数组中找不到的偶数。
所以我的问题是当我遍历for循环时,我的代码打印出在数组中找不到的偶数。它为每个非偶数打印,这显然不是它应该做的。我需要某种提示。顺便说一句,这不是家庭作业,这是在Programmr.com上发现的问题。这是我的代码:

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

       }

     }

   }

 }

最佳答案

您可以在此处使用boolean
boolean初始化false变量
如果找到任何even而不是将boolean设置为true
并检查您的boolean条件中的if

范例:

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

关于java - 关于遍历数组时for循环中的“else”语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21254450/

10-13 09:09