elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C++ While (No consigo salir del ciclo)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C++ While (No consigo salir del ciclo)  (Leído 5,356 veces)
#Aitor

Desconectado Desconectado

Mensajes: 173



Ver Perfil
C++ While (No consigo salir del ciclo)
« en: 28 Julio 2013, 18:24 pm »

Bueno, pues como dice el titulo, algo sucede, que no consigo salir del ciclo

Código
  1. cout << endl << "Escriba /help si necesitas ayuda." << endl;
  2.  
  3. string help;
  4.  
  5. cin >> help;
  6.  
  7. while (help != "/help" || "/informacion" || "/automatico" || "/console"){
  8. cout << endl << help << " no se conoce como un parametro." << endl;
  9. cin >>  help;
  10. }
  11.  
  12. if(help == "/help"){
  13. cout << endl << "- Comandos básicos - " << endl;
  14. cout << "---------------------" << endl;
  15. cout << "/automatico Este comando hará el calculo automáticamente y de forma simple." << endl;
  16. cout << "/console Este comando hará el calculo mediante parámetros. "  << endl;
  17. cout << "/informacion Este comando proporcionará información del creador." << endl;
  18.  
  19. }else if(help == "/informacion"){
  20. cout << "Programa creado por aitor. Gracias por utilizar el programa." << endl;
  21.  
  22. }else{
  23.  
  24. cout << "No funciona" << endl; }
  25.  

Se supone que si escribes algo diferente de esos 4 "parámetros" entras en un ciclo, que te advierte, que no se conoce dicho parámetro, y te vuelve a pedir que escribas bien lo que querías escribir, el problema está que al escribir /help /informacion /atuomatico /console , no sale del ciclo y sigue advirtiendo de que dicho parámetro no se conoce....

Gracias de antemano.


« Última modificación: 28 Julio 2013, 18:26 pm por #Aitor » En línea

Mi algoritmo en PHP (estupideces y más).
Código
  1. while($Se_feliz){
  2.  Piensa_un_OBJETIVO(); // Sin excusas!
  3.  if($Tienes_un_objetivo){
  4.    Suspira(); // Sé paciente.
  5.    if($Consigues_el_objetivo){ echo "¡Felicidades #Aitor!";return;
  6.      //RETURN; ¿O volvemos a empezar?
  7.    }else{
  8.      Inténtalo_de_nuevo();
  9.    }
  10.  }
  11. }
Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: C++ While (No consigo salir del ciclo)
« Respuesta #1 en: 28 Julio 2013, 18:36 pm »

sintaxis de un while: while(condicion), lo que en tu caso se puede desgranar en : while (condicion OR condicion OR condicion OR ....)

Tu has puesto while(condicion OR literal OR literal ...)

Código
  1. while (help != "/help" || help != "/informacion" || help != "/automatico" ||  help != "/console"){
  2.  


En línea

#Aitor

Desconectado Desconectado

Mensajes: 173



Ver Perfil
Re: C++ While (No consigo salir del ciclo)
« Respuesta #2 en: 28 Julio 2013, 18:50 pm »

sintaxis de un while: while(condicion), lo que en tu caso se puede desgranar en : while (condicion OR condicion OR condicion OR ....)

Tu has puesto while(condicion OR literal OR literal ...)

Código
  1. while (help != "/help" || help != "/informacion" || help != "/automatico" ||  help != "/console"){
  2.  
Perdona, no te sigo, realmente acabo de "empezar" y ando haciendo pruebas a mansalva.

¿A qué te refieres con condicion || literal?

Gracias de antemano.


EDITO:


Vale, ya leí en msdn a que se refiere con literal, y ya vi el fallo, perdona la molestia!

muchas gracias...!


RE EDITO:


con;

Código
  1.  
  2. while (help != "/help" || help != "/informacion" || help != "/automatico" ||  help != "/console"){
  3. cout << endl << help << " no se conoce como un parametro." << endl;
  4. cin >>  help;
  5. }
  6.  

No salta el ciclo, pero con

Código
  1. while (help != "/help"){
  2. cout << endl << help << " no se conoce como un parametro." << endl;
  3. cin >>  help;
  4. }
  5.  

Si lo hace, y sigo sin ver el problema.


RE RE EDITO (QUE PESADITO SOY)

Lo solucioné cambiando el || por &&  aunque no comprendo porque no funciona de la otra forma...

Código
  1. while (help != "/help" && help != "/informacion"){
  2. cout << endl << help << " no se conoce como un parametro." << endl;
  3. cin >>  help;
  4. }
  5.  

¡Gracias! y si alguien podría darme una explicación de porque or no sirve pero and si, se lo agradecería mucho.

¡Un saludo!
« Última modificación: 28 Julio 2013, 20:34 pm por #Aitor » En línea

Mi algoritmo en PHP (estupideces y más).
Código
  1. while($Se_feliz){
  2.  Piensa_un_OBJETIVO(); // Sin excusas!
  3.  if($Tienes_un_objetivo){
  4.    Suspira(); // Sé paciente.
  5.    if($Consigues_el_objetivo){ echo "¡Felicidades #Aitor!";return;
  6.      //RETURN; ¿O volvemos a empezar?
  7.    }else{
  8.      Inténtalo_de_nuevo();
  9.    }
  10.  }
  11. }
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: C++ While (No consigo salir del ciclo)
« Respuesta #3 en: 28 Julio 2013, 20:41 pm »

Lo solucioné cambiando el || por &&  aunque no comprendo porque no funciona de la otra forma...

Código
  1. while (help != "/help" && help != "/informacion"){
  2. cout << endl << help << " no se conoce como un parametro." << endl;
  3. cin >>  help;
  4. }
  5.  

¡Gracias! y si alguien podría darme una explicación de porque or no sirve pero and si, se lo agradecería mucho.

¡Un saludo!
El operador || sería valido si estuvieras comprobando una igualdad.

Pero estás descartando posibilidades, asi que tienes que descartarlas todas uniendolas con el operador &&
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: C++ While (No consigo salir del ciclo)
« Respuesta #4 en: 29 Julio 2013, 00:01 am »

Puedes leerlo en lenguaje humano como: "mientras sea diferente de... y diferente de... y diferente de..."
Es decir, si es diferente de cualquiera de esas palabras van a continuar las iteraciones.

Si usas el operador lógico OR jamás acabaría porque... ser diferente de X o de Y siempre se cumplirá.
Sea cual fuere la entrada, dicha condición siempre será verdadera... porque para ser falsa tendría que ingresarse algo que sea igual a X y Y simultáneamente y eso es imposible porque X y Y son distintos y una expresión (o una variable) no puede tener 2 valores a la vez.
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con un ciclo
Java
xAgramonx 3 3,228 Último mensaje 25 Noviembre 2010, 19:30 pm
por xAgramonx
Proyecto de fin de ciclo
Foro Libre
Khronos14 5 4,070 Último mensaje 31 Marzo 2011, 23:49 pm
por Jake Logan
como romper, cerrar, salir de un ciclo!!!
Programación C/C++
astro1 6 37,280 Último mensaje 1 Junio 2011, 06:06 am
por 4rkn63l
ciclo for()
Programación C/C++
noah222 2 6,239 Último mensaje 18 Abril 2013, 15:23 pm
por rir3760
No consigo salir de un bucle While
Programación C/C++
mario290386 4 4,289 Último mensaje 5 Agosto 2018, 20:35 pm
por mario290386
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines