Problemas con IF (ejercicio de Módulo)
Publicado por Antonio (3 intervenciones) el 23/11/2005 19:06:32
Hola a todos. Puede que este problema sea sencillo para los de este foro, pero es un ejercicio que me han mandado en el módulo y no consigo encontrar el error. Está escrito para Delphi 5:
{Comprobación de si es Escalera Real}
IF (Aux_Combinacion.Tipo = NADA) THEN BEGIN
FOR Bucle := 1 TO 4 DO BEGIN
IF (Dados[Bucle] = R) THEN Esc1 := True;
IF (Dados[Bucle] = K) THEN Esc2 := True;
IF (Dados[Bucle] = Q) THEN Esc3 := True;
IF (Dados[Bucle] = J) THEN Esc4 := True;
END {FOR};
IF (Esc1 AND Esc2 AND Esc3 AND Esc4) THEN {=======ERROR=======}
Aux_Combinacion.Tipo := EscaleraReal;
END {THEN}
{Comprobación de si es Escalera al AS}
ELSE IF (Aux_Combinacion.Tipo = NADA) THEN BEGIN {== SIGUIENTE ELSE IF ==}
FOR Bucle := 1 TO 4 DO
IF (Dados[Bucle] = A) THEN Esc1 := True;
IF (Esc1 AND Esc2 AND Esc3 AND Esc4) THEN
Aux_Combinacion.Tipo := EscaleraAlAS;
END {ELSE IF};
El error está en que una vez que ha llegado a la zona que he marcado como ERROR, si es FALSE, no entra en el siguiente ELSE IF, y lo que hace es saltarse todo lo demás y llegar al final. He mirado los BEGIN's y END's y parece estar todo en su sitio. Quisiera saber donde está el problema para que pueda pasar al siguiente ELSE IF sin problemas.
Muchas gracias.
{Comprobación de si es Escalera Real}
IF (Aux_Combinacion.Tipo = NADA) THEN BEGIN
FOR Bucle := 1 TO 4 DO BEGIN
IF (Dados[Bucle] = R) THEN Esc1 := True;
IF (Dados[Bucle] = K) THEN Esc2 := True;
IF (Dados[Bucle] = Q) THEN Esc3 := True;
IF (Dados[Bucle] = J) THEN Esc4 := True;
END {FOR};
IF (Esc1 AND Esc2 AND Esc3 AND Esc4) THEN {=======ERROR=======}
Aux_Combinacion.Tipo := EscaleraReal;
END {THEN}
{Comprobación de si es Escalera al AS}
ELSE IF (Aux_Combinacion.Tipo = NADA) THEN BEGIN {== SIGUIENTE ELSE IF ==}
FOR Bucle := 1 TO 4 DO
IF (Dados[Bucle] = A) THEN Esc1 := True;
IF (Esc1 AND Esc2 AND Esc3 AND Esc4) THEN
Aux_Combinacion.Tipo := EscaleraAlAS;
END {ELSE IF};
El error está en que una vez que ha llegado a la zona que he marcado como ERROR, si es FALSE, no entra en el siguiente ELSE IF, y lo que hace es saltarse todo lo demás y llegar al final. He mirado los BEGIN's y END's y parece estar todo en su sitio. Quisiera saber donde está el problema para que pueda pasar al siguiente ELSE IF sin problemas.
Muchas gracias.
Valora esta pregunta


0