2010-02-01 3 views
11

Qualcuno può dirmi cosa è Sentinel durante il ciclo in C++? Per favore, dammi un esempio usando sentinel while loop.Sentinel while loop per C++

+3

Le sentinelle appaiono già in 'int main (int argc, char ** argv)': l'ultimo argomento passato al tuo programma è seguito da un puntatore nullo. Quindi in senso stretto non hai bisogno di 'argc': basta fare un ciclo su' argv' fino ad ottenere un puntatore nullo. –

risposta

23

A "sentinella" in questo contesto è un valore speciale utilizzato per indicare la fine di una sequenza. La sentinella più comune è \ 0 alla fine delle stringhe. Un "sentinel while loop" avrebbe di solito il formato:

while (Get(input) != Sentinel) { 
    Process(input); 
} 
+0

Un "sentinel while loop" è solo un nome lungo per un "ciclo while", quindi? O è più specifico? –

+0

@LupusOssorum: è più specifico. È un "mentre la sentinella non è stata vista". – MSalters

0

Di solito è una variabile booleana (true o false) impostata su false quando una condizione non è soddisfatta e impostata su true quando lo è. Quindi possiamo eseguire il ciclo finché la sentinella è falsa.

Esempio:

bool acceptedAnswer = false; 
while (acceptedAnswer == false) 
{ 
    refreshPage(); 
    if (hasBeenAccepted()) 
    { 
    acceptedAnswer = true; 
    } 
} 
+0

Che non è corretto. Questa è semplicemente una condizione di terminazione o una "guardia". Come altri hanno già detto, una sentinella è un valore speciale in un'iterazione che segnala la fine del ciclo. –

1

Come un addendum alla risposta di JRL ..

Si prega di notare che non c'era nulla di sbagliato in questa domanda, ma in futuro si possono trovare aiuto più immediato andando a dictionary.com e alzando lo sguardo parole che don lo so

modifica: in questo caso, il dizionario non lascia nulla su cui riflettere. Ecco la definizione 3 :)

3 Also called tag. Computers. a symbol, mark, or other labeling device indicating the beginning or end of a unit of information. 
+0

Sì ma il dizionario non fornisce un esempio. Altre persone potrebbero anche aver bisogno di un esempio per capire meglio. – olibre

0

Un sentinale è un valore speciale in un elenco di elementi che causerà sempre l'iteratore di fermarsi.

Ad esempio, il terminatore zero in una stringa ASCIIZ funge da sentinella.

Gli elenchi collegati hanno spesso puntatori NULL e così via.