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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con operados lógico y Do...While
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con operados lógico y Do...While  (Leído 1,321 veces)
petrusqui

Desconectado Desconectado

Mensajes: 16



Ver Perfil WWW
Duda con operados lógico y Do...While
« en: 4 Mayo 2012, 17:26 pm »

Buenas,

Tengo una duda con los operadores && y ||. Por ejemplo:

1.
Código
  1. do
  2. {
  3.  
  4. }while ((cerrar_ventana != 'N') || (cerrar_ventana != 'n'))

Este ejemplo tendria que evaluar cada uno de los operandos, mientras que uno de los dos sea verdadero se continuaria realizando el bucle.

2.
Código
  1. do
  2. {
  3.  
  4. }while ((cerrar_ventana != 'N') && (cerrar_ventana != 'n'))

Este ejemplo tendria que evaluar cada uno de los oprandos, si los dos operandos dan como resultado verdadero se continuaria realizando el bucle.


Pues en hacer el programa me pasa justo lo contrario. ¿Mi duda lo que he dicho arriba esta bien o no? dejo como ejemplo este que es muy sencillo:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(int argc, char const *argv[])
  5. {
  6. char cerrar_ventana = 's'; //Pide al usuario si desea cerrar la ventana
  7.  
  8. do
  9. {
  10.                cout << "Ejemplo" << endl;
  11. cout << "Deseas realizar otra operación (S/N): ";
  12. cin >> cerrar_ventana;
  13. system("CLS");
  14.  
  15. } while (cerrar_ventana != 'N' && cerrar_ventana != 'n');
  16. return 0;
  17. }


Saludos, petrusqui.


« Última modificación: 4 Mayo 2012, 23:50 pm por petrusqui » En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: Duda con operados lógico y Do...While
« Respuesta #1 en: 4 Mayo 2012, 19:44 pm »

Lo que dijiste es correcto.
¿Qué programa no te funciona?


En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Duda con operados lógico y Do...While
« Respuesta #2 en: 4 Mayo 2012, 19:51 pm »

Hola! el primero esta bien, si cerrar_ventana es 'N' ó 'n' va a continuar en el bucle
El segundo siempre va a ser falso, ya que con el && estas haciendo que cerrar_ventana sea 'N' y 'n' pero es una variable, no puede tomar dos valores al mismo tiempo

Y en el programa a q te referis que hace lo contrario?? Para mi esta bien, si ingresas 'S' o 's' el bucle se sigue realizando, pero si ingresas 'N' o 'n' termina el programa

Por ahi te confundis xq justo tu variable se llama cerrar_ventana y lo que qres hacer es q cuando diga 'S' se cierre el programa...Generalmente la condicion se hace asi:
Código
  1. do
  2. {
  3.  
  4. }while ((continuar == 'S') || (continuar == 's'))// continua mientras sea 'S' o 's'

Saludos
En línea

Ahorrate una pregunta, lee el man
petrusqui

Desconectado Desconectado

Mensajes: 16



Ver Perfil WWW
Re: Duda con operados lógico y Do...While
« Respuesta #3 en: 5 Mayo 2012, 00:48 am »

Perdonad, me habia equivocado con los dos códigos del principio.

Y ya lo entendí, esqeu a veces llego a ser cortito jaja Como ponia solo una 'n' continuava siendo cierto ya que 'n' es diferente a 'N' y por eso si pongo && como un operndo es falso todo es falso y se para el bucle. Bueno, almenos he visto el error.


Gracias y saludos :D
En línea

s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: Duda con operados lógico y Do...While
« Respuesta #4 en: 5 Mayo 2012, 02:21 am »

Usa si deceas la funcion tolower() , asi tu while seria solamente asi:

Código
  1. while (tolower(cerrar_ventana) != 'n');
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Nero y CD de musica,NO es logico
Grabadoras
Layyer 4 998 Último mensaje 12 Junio 2003, 16:14 pm
por kåhjî£
"PCs operados con Chrome dentro de dos semanas"
Noticias
wolfbcn 0 747 Último mensaje 15 Mayo 2010, 14:16 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines