Non ero molto chiaro con l'operatore di incremento post che ho sempre utilizzato con i cicli for. Il mio ultimo e recente acquisizione comprensione operatore di post incremento è la seguente:È necessario comprendere meglio il ciclo - operatore post incremento
int a = 5
int b = a++ //a will increment and return back its old value 5
so b = 5
Armati di questa nuova conoscenza ho deciso di capire/applicarlo ai luoghi in cui i comunemente usato l'operatore di post incremento come in un ciclo for
. Ora sembra che io sono perso dal momento che sto finendo con l'uscita sbagliata teoricamente
Si consideri il seguente codice di
for(int i=0 ; i< 3 ; i++)
{
std::cout << i;
}
primo ciclo
i starts with 0 which is less than 3 so (increment by 1 however since its i++ it returns old value 0)
so cout should display 1 // But it displays 0
secondo ciclo
i is now 1 which is less than 3 so i++ is applied - Now i is 2 and returns back 1
so cout should display 2 //But it display 1
Third Loop
i is now 2 which is less than 3 so i++ is applied - Now i is 3 and returns back 2
so cout should display 3 //But it display 2
Quarto Loop
i is now 3 which is not less than 3 so loop exits
Qualcuno potrebbe chiarire la mia comprensione e mi punto nella giusta direzione. L'output dovrebbe essere 0,1,2 dove sto andando male?
Il terzo ciclo può essere ottimizzato via poiché nulla utilizza il valore restituito, quindi diventa 3 in ogni caso – EdChum
Questa domanda non riguarda l'operatore post incremento, ma la comprensione del ciclo for (la prima elaborazione dell'espressione del ciclo avviene solo dopo prima elaborazione del corpo del loop). Puoi leggere a questo proposito qui: http://www.cplusplus.com/doc/tutorial/control/ – Ilya
Apprezzerei se qualcuno potesse chiarire che su – Rajeshwar