CSC300: Code variations: While loop version (optimistic) [15/37] Previous pageContentsNext page

11
12
13
14
15
16
17
18
19
20
21
22
23
24
  public static int numFives (double[] list) {
    int i = 0;
    int result = 0;



    while (i < list.length) {
      if (list[i] == 5) {
        result++;
      }
      i = i + 1;
    }
    return result;
  }

For [5,11,5,5], the loop values (line 17) are

list==[5,11,5,5], i==0, result==0
list==[5,11,5,5], i==1, result==1
list==[5,11,5,5], i==2, result==1
list==[5,11,5,5], i==3, result==2
list==[5,11,5,5], i==4, result==3

More abstractly:

list[i..]==[5,11,5,5], result==0
  list[i..]==[11,5,5], result==1
     list[i..]==[5,5], result==1
       list[i..]==[5], result==2
        list[i..]==[], result==3

This is a while loop.

Execution enters the loop without first checking to see if it is necessary.

This is called optimistic: You jump into the loop without first testing that the list is non-empty.

Previous pageContentsNext page