[C con Clase] De vueltas con if

Steven Davidson srd4121 en njit.edu
Mar Ago 12 21:20:09 CEST 2008


Hola Rubén,

Rubén wrote:
> 
> Hola David.
> 
> Me ha ido perfecto!!! Muchas gracias, aunque no tenga ni idea de 
> programación, me estoy enviciando.
> 

Nos alegramos que te vaya gustando todo esto.

> El código me ha quedado así:
> 
> #include<iostream>
> #include<cstring>
> using namespace std;
> 
> int main()
> 
> {
> char palabra[32];
> char platano[32];
> cout<<"Oro parece plata no es, quien no lo adivine muy tonto es... "<<endl;
> cout<<"Escribe la respuesta:"<<endl;
> cin>>palabra;
> cout<<" "<<endl;
> 
>     if( strcmp( palabra, "platano" ) == 0 )
> cout<<"bravo. Acertaste."<<endl;
> if( strcmp( palabra, "platano" ) != 0 )
> cout<<"La respuesta es incorrecta"<<endl;

Aunque esto sea correcto, no es muy lógico. Fíjate en las condiciones 
que estás haciendo:

Si palabra = "platano", entonces
   correcto
Si palabra != "platano", entonces
   incorrecto

El resultado de este tipo de condiciones es binario; es decir, o es 
verdadero o es falso. Por lo tanto, si sabemos que es verdadero, no 
tiene sentido comprobar si también es falso; ya lo sabemos. Por esta 
razón tenemos el vocablo 'else' junto con 'if'. El resultado es el 
siguiente:

if( strcmp( palabra, "platano" ) == 0 )
   cout << "bravo. Acertaste." << endl;
else
   cout << "La respuesta es incorrecta" << endl;

Con esto, sólo hacemos una comprobación, en lugar de dos, la cual una de 
ellas era innecesaria.

> 
> };
> 


Espero que esto te ayude.

Steven





Más información sobre la lista de distribución Cconclase