为什么此for循环仅打印一次?什么是values.length

时间:2020-06-08 22:25:14

标签: java

我才刚刚开始,所以这将是一个初学者的问题:)

我上过这节课,但是代码中有些我不理解的东西。

int[] values;

values = new int[3];

values[0] = 10;
values[1] = 20;
values[2] = 30;

System.out.println(values[0]);
System.out.println(values[1]);
System.out.println(values[2]);

这是我了解的基本阵列课程。但是他说,还有另一种打印出这些值的方法。通过使用for循环。

for(int i=0; i<values.length; i++)
    System.out.println(values[i])

这是我不理解的部分。

  1. 什么是values.length?是3还是2
  2. 为什么它不多次打印出这些值?

Thnx

2 个答案:

答案 0 :(得分:1)

由于Java中的数组是零索引的,所以具有[10, 20, 30]的数组,即索引{{1}处的10,索引0处的20,以及索引为1的{​​{1}}的长度为30。长度只是数组中元素的数量。

现在,为什么在这里只有一个打印语句,可以更直观地看到循环的作用。

只要满足循环条件,循环便每次使用新值2来简单地执行其中的代码。

所以你可以想到这个

3

要翻译为此

i

但是,因为您会注意到,同一个函数只能使用不同的输入多次使用,所以我们只能编写一次函数,并通过循环使用不同的输入多次运行该函数。

答案 1 :(得分:0)

在旁注中,几乎应该始终使用带有for语句的BLOCK,即使其中只有一行。

所以代替:

for(int i=0; i<values.length; i++)
    System.out.println(values[i]);

您会这样做:

for(int i=0; i<values.length; i++)
{
    System.out.println(values[i]);
}

默认情况下,for循环仅在循环内紧随其后的那一行运行。压痕仅仅是美学的。如果要运行多行,则将它们全部包含在方括号中。

许多初学者跳过方括号,然后在其上添加一行...如下图所示,但希望这两行都可以在循环中运行:

for(int i=0; i<values.length; i++)
    System.out.println("Value: "); // only this line is within the loop
    System.out.println(values[i]); // this line is simply indented, and stands alone

通过养成良好的习惯,并始终在方括号中添加for循环,可以避免因上述代码而对奇怪的问题进行故障排除的时间。

相关问题