gpt4 book ai didi

java - 用于检查数组是否为 null 或空的 if 语句不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:00:07 26 4
gpt4 key购买 nike

我完成了我的主要任务(粗略翻译):

Write a method, which returns the smallest number from a 1d array of integers.

现在我必须做一个辅助任务(粗略的翻译):

Add an if statement to check if the array is null or empty, and if it is, return 0.

方法:

public static int smallestNumber (int[] array1) {

int smallest = array1[0];

if (array1 == null || array1.length == -1) {
return 0;
}

else {
for (int element : array1) {
if (element < smallest) {
smallest = element;
}
}
}
return smallest;
}

主要内容:

public static void main(String[] args) {
int[] tab1 = {}; //empty array?
int smallestNumber = smallestNumber(tab1);
System.out.printf("The smallest number is: %d", smallestNumber);
}

如果我只检查 null,则该方法有效。但我很困惑为什么它不能在空数组上工作。

int[] tab1 = {};

编辑:我也试过 array1.length == 0;

最佳答案

首先,数组的大小是非负的,所以 array1.length不能为-1,而是与0进行比较.

其次,赋值int smallest = array1[0];尝试访问空数组的第 0 个位置,这将导致 java.lang.ArrayIndexOutOfBoundsException .

所以总而言之,将作业移至 smallest在 else block 中检查空数组或空数组的条件,然后再尝试访问任何数组值。

public static int smallestNumber (int[] array1) {

int smallest;

if (array1 == null || array1.length == 0) {
return 0;
}

else {
smallest = array1[0];
for (int element : array1) {
if (element < smallest) {
smallest = element;
}
}
}
return smallest;
}

关于java - 用于检查数组是否为 null 或空的 if 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55443850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com