4

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///

1 Answer 1

9

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 ? "" : ", "));
}
Sign up to request clarification or add additional context in comments.

2 Comments

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: tell that to his tutor.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.