views:

316

answers:

1

How would I write the following for loop using an enhanced for loop>

    int [] info = {1,2,3,4,5,6,7,8,9,10};

      int i;
      for (i = 0; i < info.length; i++) {
             if ((i+1) % 10 == 0)
                      System.out.println(info[i]);
             else
                      System.out.println(info[i] + ", ");
      }

I am trying the following, but i guess im doing it incorreclty

for(int i: info){
   body here///
+5  A: 

Your syntax is correct. The difference is only that you're assigning the actual int value to i instead of the loop index. Thus, if you replace (i+1) % 10 by i % 10 and info[i] by i, it will work correctly.

int[] info = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i : info) {
    if (i % 10 == 0)
        System.out.println(i);
    else
        System.out.println(i + ", ");
}

To learn more about the enhanced for loop, check this Sun guide.

The above can by the way be shortened with help of the ternary operator ;)

int[] info = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i : info) {
    System.out.println(i + (i % 10 == 0 ? "" : ", "));
}
BalusC
cool thanks you're right
You're welcome.
BalusC
@BalusC - the original and new versions of the code do subtly different things; e.g. change the last element of `info` to `11` and see what happens.
Stephen C
@Stephen: tell that to his tutor.
BalusC
@Pool: you've the full right to downvote this answer. But I am getting tired that you continue hammering/stalking on me.
BalusC