apparte il fatto che è molto piu semplice e meno costruttivo creare una while che fare un ciclo con una if e di sicuro una variabile per terminare il ciclo...poi il programma risulta piu leggibile, piu chiaro e piu pulito, maggiormente se qst è un programma di 1000,1500 righe di codice risulta tutto piu chiaro e meno incasinato dalle variabili,cicli ecc...
poi vorrei bene capire cosa intendi per complessità macchina,cioè la macchina n ha difficoltà ad eseguire,pero penso che cn molti if e for in programmi molto grandi l'applicazione si possa rallentare...