具有离散值的Java for循环

时间:2015-12-10 14:16:17

标签: java

我需要一个for循环,在一个结束后(其中一个限制)可以超出其限制,我喜欢声明限制9并开始遍历数组到索引8然后从9开始并再多花9个步骤所以,直到我到达数组的末尾,我的尝试达到了这一点,但我想知道它是否正常工作:

int [] i={9,18,27,36,45,54,63,72,81};

for(int x:i){
   for(int j=0;j<x;j++)
      {}
     }

嵌套for循环是否会在内部for循环的每个完整循环之后更改x值?

2 个答案:

答案 0 :(得分:6)

  

然后从9开始,再多做9步

您的代码行为不符合您的要求,因为内部循环始终从0开始。

无需声明i数组。你可以这样做:

int start = 0;
for (int i = 9; i <= 81; i+=9) {
    for (int j = start; j < i; j++) {
    }
    start = i;
}

或者正如phflack所说:

for (int i = 9; i <= 81; i+=9) {
    for (int j = i - 9; j < i; j++) {
    }
}

答案 1 :(得分:0)

您可以使用此代码:

    int start = 0;
    for (int i = 9; i <= 81; i+=9) {
        for (int j = start; j < i; j++) {
            System.out.print(j+" ");
        }
        System.out.println();
        start = i;
        //System.out.print(start+" ");
    }
}

你看到了:

0 1 2 3 4 5 6 7 8 
9 10 11 12 13 14 15 16 17 
18 19 20 21 22 23 24 25 26 
27 28 29 30 31 32 33 34 35 
36 37 38 39 40 41 42 43 44 
45 46 47 48 49 50 51 52 53 
54 55 56 57 58 59 60 61 62 
63 64 65 66 67 68 69 70 71 
72 73 74 75 76 77 78 79 80 

另一项培训:

    int start = 0;
    for (int i = 1; i <= 10; i++) {
        for (int j = 1; j < i; j++) {
            System.out.print(j + " ");
        }
        System.out.println();

    }

你可以看到:

1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 6 
1 2 3 4 5 6 7 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8 9 
  

您可以使用两个循环来打印矩阵。