2010-02-01 11 views
11

¿Alguien puede decirme qué es sentinel while loop en C++? Por favor dame un ejemplo usando centinela while loop.Sentinel while loop para C++

+3

Los Sentinels ya aparecen en 'int main (int argc, char ** argv)': El último argumento pasado a su programa va seguido de un puntero nulo. Así que, estrictamente hablando, no necesitas 'argc': simplemente recorre' argv' hasta que obtengas un puntero nulo. –

Respuesta

23

A "centinela" en este contexto es un valor especial que se utiliza para indicar el final de una secuencia. El centinela más común es \ 0 al final de las cadenas. Un "Sentinel while loop" normalmente tiene la forma:

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

¿Es un "sentinel while loop" simplemente un nombre largo para un "while loop"? ¿O es más específico? –

+0

@LupusOssorum: es más específico. Es un "mientras que el centinela no ha sido visto" -loop. – MSalters

0

Por lo general, es una variable booleana (verdadera o falsa) que se establece en falso cuando una condición no se cumple y se establece en verdadero cuando lo es. Entonces podemos repetir mientras el centinela sea falso.

Ejemplo:

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

Eso es incorrecto. Eso es simplemente una condición de terminación, o un "guardia". Como han dicho otros, un centinela es un valor especial en una iteración que señala que se termina el ciclo. –

1

Como una adición a la respuesta de JRL ..

Tenga en cuenta que no había nada de malo en hacer esta pregunta, pero en el futuro puede encontrar ayuda más inmediata yendo a dictionary.com y buscar palabras que Don no lo se

editar: en este caso, el diccionario no deja nada para que usted piense. Aquí está la definición 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í, pero el diccionario no proporciona un ejemplo. Otras personas también pueden necesitar un ejemplo para comprender mejor. – olibre

0

A sentinal es un valor especial en una lista de elementos que siempre hará que el iterador se detenga.

Por ejemplo, el terminador cero en una cadena ASCIIZ actúa como un elemento sentinal.

Las listas vinculadas a menudo tienen punteros nulos y más.