The WHILE loop uses a loop index value as its gate on entry criterion:
SQL>
SQL> DECLARE
2 counter NUMBER := 1;
3 BEGIN
4 WHILE (counter < 5) LOOP
5 dbms_output.put_line('Index ['||counter||'].');
6 IF counter >= 1 THEN
7 counter := counter + 1;
8 END IF;
9 END LOOP;
10 END;
11 /
Index [1].
Index [2].
Index [3].
Index [4].