Diamo un'occhiata a questi in modo indipendente:
while(cin >> x) {
// code
}
Questo ciclo, intuitivamente, significa "mantenere i valori di lettura da cin
in x
, e finché un valore può essere letto, continuare il ciclo." Non appena viene letto un valore che non è un int
o non appena cin
viene chiuso, il ciclo termina. Ciò significa che il ciclo verrà eseguito solo mentre x
è valido.
D'altra parte, prendere in considerazione questo ciclo:
while(cin){
cin >> y;
//code
}
La dichiarazione while (cin)
mezzo "mentre tutte le operazioni precedenti sul cin
sono riusciti, continuare a ciclo." Una volta entrato nel ciclo, proveremo a leggere un valore in . Questo potrebbe riuscire, o potrebbe fallire. Tuttavia, indipendentemente da quale sia il caso, il ciclo continuerà ad essere eseguito. Ciò significa che una volta immessi dati non validi o non ci sono più dati da leggere, il ciclo verrà eseguito ancora una volta utilizzando il vecchio valore di , in modo da avere un'ulteriore iterazione del ciclo del necessario.
Si consiglia di preferire la prima versione di questo ciclo al secondo. Non esegue mai un'iterazione a meno che non ci siano dati validi.
Spero che questo aiuti!
"e finché un valore può essere letto, continua il ciclo" vale a dire se la lettura ha avuto esito positivo, eseguire il corpo del loop. – dyp