假设我想以相反的顺序打印数组。但是,如果数组为空,则应打印"数组为空"
为什么此代码不起作用:
我们可以假设如果数组为空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");
答案 0 :(得分:3)
请参阅int[] a = {};
创建一个大小为0的数组。因此for循环甚至不会在第一种情况下执行。让我们看看第二个案例。
这里,如果条件if (a.length == 0)
被执行而其他部分没有执行。
让我们看看第三种情况。再次for循环不执行。下一个代码移动到for循环之外的if语句。它被执行了。
我希望您理解为什么您的for循环不会执行。见a.length=0
。因此i =-1
但我们为for循环提供的条件是i>=0