Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果数组为空,则打印空消息_Java_Arrays_For Loop - Fatal编程技术网

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

Java 如果数组为空,则打印空消息,java,arrays,for-loop,Java,Arrays,For Loop,假设我想以相反的顺序打印数组。但是,如果数组为空,则应打印“数组为空” 为什么此代码不起作用: 我们可以假设如果数组是空的a.length是0还是null? if()语句中的a.length应该是多少。for循环中不允许其工作的if语句有什么问题?或者它从未进入for循环 public class Test2 { public static void main(String[] args) { int[] a = {}; for (int i = a.

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

为什么此代码不起作用:

我们可以假设如果数组是空的
a.length
是0还是null? 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");

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

在这里,if条件
if(a.length==0)
被执行,而else部分不执行

让我们看看第三种情况。同样,for循环不执行。下一段代码移到if语句,该语句位于for循环之外。它被执行


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

如果您使用java,请将其添加到标记中。请在代码的第一部分中指定一种语言,如果(a.length==0)
行在
for
循环中(与其他两部分不同)。数组长度在循环中永远不会为零,因此您无法获得所搜索的输出。dave您说过数组长度在循环中永远不会为零。如果数组开始时为空。。。或者,这是否意味着永远不能生成一个没有元素的数组。因此,数组的长度必须为1或更长?谢谢!你帮我发现为什么它永远不会起作用。我的理解是:i=a.length-1,对于空数组,i为0,它将永远不会进入for循环b/c,i为-1。即使我们把它改为:for(inti=a.length;i>=a.length;i--),当它减的时候,它就失去了绑定。伟大的