我有这段代码:
public class TestPrimaryArray
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter 5 numbers: ");
int[] numbers = new int[5];
for(int i = 0; i < numbers.length; i++)
{
numbers[i] = scan.nextInt();
boolean isPrime = PrimeArray(numbers);
System.out.println("Is " +numbers[i]+ " a prime? " +isPrime);
}
}
public static boolean PrimeArray(int[] arr)
{
boolean prime = true;
for(int i = 1; i < arr.length; i++)
{
if(arr[i]%2 == 1)
prime = true;
else
prime = false;
}
return prime;
}
}
这个程序应该从用户获取输入并将其放入长度为5的一维数组中,然后判断这些数字是否为质数。我运行了代码并成功编译,但当我看到结果时,它并没有给我正确的答案。 以下是使用数字11 7 3 5 20进行示例运行:
Enter 5 numbers:
11 7 3 5 20
Is 11 a prime? false
Is 7 a prime? false
Is 3 a prime? false
Is 5 a prime? false
Is 20 a prime? false
它应该告诉我除了20以外的所有条件都是真的。我不知道我做错了什么。我该怎么办?
PrimeArray
都需要传入一个数组?你是否注意到,你在每个传递进来的数字上都设定了变量prime
,并在循环结束后返回它的值?因此很明显,它只能返回你数组中最后一个数字的结果。所以请重新思考一下PrimeArray
方法。 - TomPrimeArray
方法?使用第一个for循环填充数组。在primeArray
中使用第二个for循环打印输出。 - yogidilip