You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java数组奇偶统计代码新增零元素识别统计的实现方案

实现方案选择
  • 不需要编写独立的遍历判断逻辑,直接在原有判断结构中新增分支即可,还能避免额外遍历数组的性能开销。
  • 注意关键细节:数学定义上0属于偶数,原代码中arr[i] % 2 == 0的判断条件会直接将0归入偶数集合,因此如果需要把0从偶数分类中单独拆分统计,必须把0的判断放在奇偶判断逻辑之前,否则永远无法命中0的判断分支。
具体修改点
  • 新增零元素统计变量:如果只需要统计0的个数,定义一个整型计数器即可;如果需要单独存储所有0元素,可以额外声明一个长度为20的zero数组和对应的下标变量。
  • 调整原有分类循环的判断顺序:优先判断当前元素是否为0,命中则更新统计值/存入数组,未命中再走原有的奇偶分类逻辑。
  • 在原有奇偶输出逻辑后,新增零元素统计结果的输出。
修改后完整代码(0单独统计、不纳入偶数列表)
import java.util.Scanner;

public class num
{
   public static void main(String args[]) {
       
       final int NUM_COUNT = 20;
       Scanner in = new Scanner(System.in);
       int i = 0;
       
       int arr[] = new int[NUM_COUNT];
       int even[] = new int[NUM_COUNT];
       int odd[] = new int[NUM_COUNT];
       // 零元素计数器,如需单独存储0可替换为数组+下标的形式
       int zeroCount = 0;
       
       System.out.println("Enter 20 numbers:");
       for (i = 0; i < NUM_COUNT; i++) {
           arr[i] = in.nextInt();
       }
       
       int eIdx = 0, oIdx = 0;
       for (i = 0; i < NUM_COUNT; i++) {
           // 优先判断是否为0
           if (arr[i] == 0) {
               zeroCount++;
           } else if (arr[i] % 2 == 0) {
               even[eIdx++] = arr[i];
           } else {
               odd[oIdx++] = arr[i];
           }
       }
       
       System.out.println("Even Numbers:");
       for (i = 0; i < eIdx; i++) {
           System.out.print(even[i] + " ");
       }
       
       System.out.println("\nOdd Numbers:");
       for (i = 0; i < oIdx; i++) {
           System.out.print(odd[i] + " ");
       }
       
       // 输出零元素统计结果
       System.out.println("\nZero element count in array: " + zeroCount);
   }
}

补充:如果你希望0仍然保留在偶数列表中,仅额外统计0的个数,不需要调整判断顺序,直接在偶数判断分支内加计数逻辑即可,对应修改片段为:

if (arr[i] % 2 == 0) {
    even[eIdx++] = arr[i];
    if (arr[i] == 0) zeroCount++;
} else {
    odd[oIdx++] = arr[i];
}

内容的提问来源于stack exchange,提问作者Joshua De Guzman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 14:21:20