Вообще можно использовать любой цикл) а так думаю, лучше всего подойдет 3. while do, хотя бы потому что мы можем записать в условие (true), а потом в ходе цикла при каком-то условии написать false или break;
или еще можно написать bool b= true (оформление записи зависит от языка) и тогда в цикле где-то написать b=false. (что бы прога не залагала и не зациклилась)