[C con Clase] Duda acerca de else if

Oscar Aparicio Holgado pelucheloko en hotmail.com
Mar Abr 15 20:06:36 CEST 2014


Hola que tal.
Tengo el siguiente código (es el juego de piedra papel y tijera) :
#include <iostream>#include <time.h>#include <stdlib.h>using namespace std;
int main(){
    srand( time(NULL) );
	const char *ordenador[3] = { "piedra", "papel", "tijera" };	int s = rand() % 3;
	//cout << "Eleccion de la maquina: " << ordenador[s] << endl;
	int eleccion;
	cout << "Introduce n. jugada (1 = piedra, 2 = papel, 3 = tijera): ";	cin >> eleccion;	cout << endl;
	if(eleccion == 1);            if(eleccion == 1 && ordenador[s] == ordenador[0])                 cout << "Empate!" << endl;            else if(eleccion == 1 && ordenador[s] == ordenador[1])                 cout << "Perdistes panoli!" << endl;            else if(eleccion == 1 && ordenador[s] == ordenador[2])                 cout << "Ganastes tronko!" << endl;         else if(eleccion == 2);             if(eleccion == 2 && ordenador[s] == ordenador[0])                 cout << "Ganastes tronko!!" << endl;             else if(eleccion == 2 && ordenador[s] == ordenador[1])                 cout << "Empate!!" << endl;             else if(eleccion == 2 && ordenador[s] == ordenador[2])                cout << "Perdistes panoli!!" << endl;         else if(eleccion == 3);             if(eleccion == 3 && ordenador[s] == ordenador[0])                 cout << "Perdistes panoli!!!" << endl;             else if(eleccion == 3 && ordenador[s] == ordenador[1])                 cout << "Ganastes tronko!!!" << endl;             else if(eleccion == 3 && ordenador[s] == ordenador[2])                 cout << "Empate!!!" << endl;	return 0;}
Si en los else if los dejo asi (ejemplo):
else if(ordenador[s]==ordenador[valor 0 1 o 2]    cout << lo que sea
Me da un valor de cout tres veces, acorde a la condición del elseif; ejemplo, si escojo tijera (3) y el ordenador es tijera (ordenador[2]) me repite el cout de cada else if con el cout correspondiente, ¿por que? ¿no se supone que ya hay un if diciendo que si escojo la opcion tijeras (la 3) solo debería ejecutar el if y los dos else if que alli se encuentran y solo esos?
Si necesitais más datos pedirmelos.
Un saludo y gracias.
Oscar.
 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140415/128e120c/attachment.html>


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