Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any computational difference between while and for loops?

Tags:

java

loops

big-o

Just wondering if there is any computational difference between:

for(;condition;) {
    //task
}

and

while(condition) {
    //task
}
like image 738
Kiwi Rambo Avatar asked Dec 18 '22 18:12

Kiwi Rambo


1 Answers

There is no difference as in both the cases Java compiler generates the same byte code . If you look on the byte code when I used for loop:

  0: bipush        11
  2: istore_1
  3: goto          9
  6: iinc          1, -1
  9: iload_1
 10: bipush        10
 12: if_icmpgt     6
 15: return

The above byte code genearated for the code below :

    int a = 11;
    for (; a > 10;) {
        a--;
    }

And same byte code:

   Code:
      0: bipush        11
      2: istore_1
      3: goto          9
      6: iinc          1, -1
      9: iload_1
     10: bipush        10
     12: if_icmpgt     6
     15: return

Has generated by the compiler when I used while loop

    int a = 11;
    while (a > 10) {
        a--;
    }
like image 196
Amit Bera Avatar answered Apr 30 '23 12:04

Amit Bera