Разными. Всё зависит от того, что это за цикл и что за язык.
Для начала - циклы бывают условными и безусловными. Основное отличие в том, что для условных циклов формулируется условие его окончания, а для безусловного - нет. Простейший пример безусловного цикла - это LOOP END (в языке Modula-2, я его чисто для примера беру, потому что там строгий синтаксис). Между LOOP и END, естессно, могут стоять какие-то команды. И когда программа выполняет этот цикл, она ничего не проверяет, никакого условия. Да, из него можно выбраться (оператором EXIT или RETURN), но к самому циклу этот оператор никакого отношения не имеет. Более того, в цикле вообще может не быть такой проверки - например, именно так организуется опрос прерываний, когда ящик "ничего не делает" и только ждёт внешнего события.
А вот в условных циклах проверка условия окончания цикла ОБЯЗАТЕЛЬНА, причём ПРИ КАЖДОМ выполнеинии цикла. В простейшем случае этто может быть цикл с фиксированным числом выполнения (счётсиком цикла) FOR ... END. В условии FOR пишется, сколько раз должен прокрутиться счётчик, и инициализируется переменная - счётчик цикла. Например, FOR i := 1 TO 1000 M[i]:=0 END означает, что мы тысячу раз присваиваем элементам массива M значения 0. Как только тыщу раз прокрутили - всё, возвращаемся назад.
Может быть и цикл с неопределённым числом повторений, когда условие входа или условие выхода каждый раз проверяется по новой. Это соответственно циклы WHILE ... END и REPEAT ... UNTIL. Цикл WHILE проверяет условие перед началом, и если оно выполняется - то дальше выполняются все команды до конца цикла. А вот цикл REPEAT проверяет выполнения условия в конце цикла, при этом в начале цикла нас ничего не волнует. Это, например удобно, когда нужно дождаться ввода с клавиатуры определённого символа - ведь в начале такого цикла этого символа можетешё вообше не существовать (ещё ничего на клавиатуре на набиралось): REPEAT Read(ch) UNTIL ch=15C (ждём, пока будет нажата клавиша ENTER).