Смотря что Вы называете циклом. По установившейся терминологии любой цикл состоит из заголовка цикла (по строению которого циклы часто и именуют) и тела цикла. В языке паскаль в заголовке цикла с предусловием стоит ключевое слово while и ключевое слово цикла с параметром for стоять уже не может. Но в теле цикла, которое может иметь любое содержимое, цикл for, конечно же, может встречаться.
А вот язык Алгол, на базе которого Н.Вирт сконструировал свой Паскаль, мог в заголовке цикла содержать очень много всего и, в том числе, смесь while с for:
for x:=p0 step h1 until q-1, q+1 step h2 until t, t+0.17 step h3 while cos(x/2)<0.85 <strong>do ...
Но Н.Вирт решил, что такой цикл неэффективен и... оставил от него жалкие ошметки. Возможно, компилятору "стало проще жить", но зато программисты в Паскале лишились возможности не только писать в цикле вещественные значения, но и вынуждены менять целочисленные только на 1 или -1.