【问题标题】:For loop through an Array in JavaFor循环遍历Java中的数组
【发布时间】:2014-04-15 17:01:05
【问题描述】:

我正在尝试编写一个 for 循环来从特定的索引范围进行迭代。

所以,如果我有一个名为data[] 的数组长度为 10,并且我只想从第 3 个位置(索引 2)迭代到第 9 个位置(索引 8),我该如何编写该循环结构?

示例代码如下:

//Trying to iterate from index 2 - 9
for(int i=0; i<data.length && i>2 && i<9; i++)
{
    System.out.println(data[i]);
}

提前致谢

【问题讨论】:

  • for(int i = 2 i
  • 慢下来,看一些教程。您的 for 循环有一些语法错误。
  • 不要使用数组。使用Listfor(Data d : list.subList(start, end){
  • 如果他甚至不知道如何使用简单的 for 循环,我怀疑列表是要寻找的东西。

标签: java arrays indexing


【解决方案1】:

只需更改 for 循环的开始索引和停止索引。因此,如果 index (i) 大于或等于 9 或大于或等于数组的长度,则 for lop 的中断条件将是。

for(int i = 2;  i < 9 && i < data.length;  i++)
{
  System.out.println(data[i]);
}

【讨论】:

  • “大于 9”应为“大于或等于 9”。 “大于数组的长度”也应该是“大于或等于...”。
【解决方案2】:

只写:

for (int i = 2; i < 9; i++) {
    // Do stuff
}

【讨论】:

    【解决方案3】:

    改成:

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

    如果长度是固定的(9):

    for(int i=2; i<= 9; i++)
        {
            System.out.println(data[i]);
        }
    

    你可以这样做: 这将从第三个位置迭代循环到最后一个索引。

    【讨论】:

    • @feuerball : 已编辑.. 谢谢 :)
    • 你还忘记了&lt;9
    • @BoristheSpider 数组的长度是 10,它可以变化.. 所以出于一般目的,我保留了它。
    • 但他想要那个范围
    • OP 说从3(索引2)到9(索引8)的迭代。这很明确。
    【解决方案4】:

    您的代码肯定是无效的,但我想这只是一个错字。通常你想要这个:

    for(int i=2 ; i < Math.min(9,data.length) ; ++i)
    {
        System.out.println(data[i]);
    }
    

    我建议使用Math.min(8,data.length) 而不是简单的8,以防您的数组少于 9 个元素。

    【讨论】:

    • 不管怎样,确保您不会超出数组范围始终是一个好习惯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2014-08-15
    • 2016-05-25
    • 1970-01-01
    相关资源
    最近更新 更多