如果数组为空,则打印空消息

时间:2018-04-13 00:55:01

标签: java arrays for-loop

假设我想以相反的顺序打印数组。但是,如果数组为空,则应打印"数组为空"

为什么此代码不起作用:

我们可以假设如果数组为空a.length是0还是空? 在if()语句中,a.length应该是什么==。for循环中if语句不允许它工作的错误是什么?或者它从未进入for循环?

public class Test2 {

    public static void main(String[] args) {
        int[] a = {};

        for (int i = a.length - 1; i >= 0; i--) {
            System.out.print(a[i] + " ");
            if (a.length == 0)
                System.out.print("The array is empty");

        }
    }
}

本守则有效:

if (a.length == 0)
    System.out.print("The array is empty");
else
{
    for(int i = a.length - 1 ; i >= 0 ; i--)
    {
        System.out.print (a[i] + " ");
    }
}

这也有效:

for(int i = a.length - 1 ; i >= 0 ; i--)
{
    System.out.print (a[i] + " ");
}
if (a.length == 0)
    System.out.print("The array is empty");

1 个答案:

答案 0 :(得分:3)

请参阅int[] a = {};创建一个大小为0的数组。因此for循环甚至不会在第一种情况下执行。让我们看看第二个案例。

这里,如果条件if (a.length == 0)被执行而其他部分没有执行。

让我们看看第三种情况。再次for循环不执行。下一个代码移动到for循环之外的if语句。它被执行了。

我希望您理解为什么您的for循环不会执行。见a.length=0。因此i =-1但我们为for循环提供的条件是i>=0