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

Java从用户输入整数数组筛选素数返回ArrayList问题排查

代码错误点汇总

  • 条件判断语法错误:if(ris=true)是赋值操作,并非相等判断,会强制将ris设为true,导致所有输入元素都被加入结果列表,正确写法为if(ris)
  • 标志位ris初始化位置错误:需放在遍历数组元素的循环内部,每次判断新元素前重置状态,否则前一个元素的判断结果会影响后续元素
  • 素数判定逻辑存在多处漏洞:
    • 未过滤小于2的整数(小于2的数均不是素数)
    • 大于3的奇数没有做整除校验,9、15这类非素数奇数会被误判为素数
    • 等于3的场景下内层循环不会执行,ris未被正确赋值为true
  • 泛型使用不规范:arrayPrimi方法返回值未指定泛型,main方法中接收返回值的类型错误写为ArrayList<int[]>,与实际返回的ArrayList<Integer>不匹配

修复后完整代码

package numeriPrimi;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class NumeriPrimi {

    public static ArrayList<Integer> arrayPrimi(int[] number) {
        ArrayList<Integer> listaPrimi = new ArrayList<>();
        // 遍历数组每个元素
        for (int j : number) {
            boolean isPrime = true;
            // 小于2的数不是素数
            if (j < 2) {
                isPrime = false;
            } else if (j == 2) {
                isPrime = true;
            } else if (j % 2 == 0) {
                // 大于2的偶数不是素数
                isPrime = false;
            } else {
                // 奇数只需要判断到平方根,步长为2减少循环次数
                for (int k = 3; k <= Math.sqrt(j); k += 2) {
                    if (j % k == 0) {
                        isPrime = false;
                        break;
                    }
                }
            }
            if (isPrime) {
                listaPrimi.add(j);
            }
        }
        return listaPrimi;
    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入数组长度:");
        int l = Integer.parseInt(input.nextLine());
        int[] numbers = new int[l];

        System.out.println("请输入数组元素:");
        for (int i = 0; i < numbers.length; i++) {
            numbers[i] = input.nextInt();
        }
        System.out.println("输入的数组为:" + Arrays.toString(numbers));
        ArrayList<Integer> lista = NumeriPrimi.arrayPrimi(numbers);
        System.out.println("数组中的素数如下:\n" + lista);
    }
}

内容的提问来源于stack exchange,提问作者Maryam Z

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:24:01