【发布时间】:2020-12-21 06:36:27
【问题描述】:
我在使用布尔方法时遇到问题,我想检查数组是偶数、奇数还是两者都不是。我输入了数组大小和数组值,但是“isArrayEven”方法一直输出“数组中的所有数字都是偶数”,即使我的数组是 1、2、3 并且 isArrayEven 应该是假的。
import java.util.Scanner;
public class OddOrEven {
public static boolean isArrayEven(int[] arrayValues, int arraySize){
for(int i = 0; i <= arraySize -1; i++)
{
if(arrayValues[i] % 2 == 0)
{
return true;
}
}
return false;
}
public static boolean isArrayOdd(int[] arrayValues, int arraySize){
for(int i = 0 ; i < arraySize ; i++)
{
if(arrayValues[i] % 2 == 1)
{
return true;
}
}
return false;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int arraySize = scan.nextInt();
int[] arrayValues = new int[arraySize];
for(int i = 0; i <= arraySize-1; i++)
{
arrayValues[i] = scan.nextInt();
}
if(isArrayEven(arrayValues,arraySize) == true)
{
System.out.println("all numbers in array is even");
}else if(isArrayOdd(arrayValues,arraySize) == true)
{
System.out.println("all numbers in arrat is odd");
}else if(isArrayEven(arrayValues,arraySize) == false && isArrayOdd(arrayValues,arraySize) == false)
{
System.out.println("both have even and odd");
}
}
}
我
【问题讨论】:
-
如果检查通过,则需要反转布尔检查语句和
return false。例如当一个值是奇数时,你应该在 isArrayEven 方法中直接返回 false。