2017-10-10 4 views
0

Je suis en train d'écrire une procédure qui produira la sortie suivanteboucle While et Si/Else en PL/SQL

exec WinOrLose(4) 

Welcome to the Win or Lose Game. Your number is 4. 

You win. 
You lose. 
You win. 
You lose. 

==> You lose! 

Jusqu'à présent, j'ai ceci:

CREATE or REPLACE Procedure WinOrLose (
    p_choice number) AS 

    v_answer number; 

DECLARE 
    v_answer := p_choice 

BEGIN 
    dbms_output.put_line ('Welcome to the Win or Lose Game. Your number is ' || 
    v_answer); 

    FOR v_answer in 1..10 
    IF MOD(v_answer, 2) = 0 THEN -- v_answer is even 
      dbms_output.put_line (You lose) 

END; 
/

Je ne suis pas sûr d'où aller à partir de là. Mon processus de pensée (psuedocode) est la suivante:

SET v_answer := 1 
    While Loop (outside) 
    MOD(v_answer,2) = 0 then dbms.output (YOU LOSE) 
    ELSE 
    dbms.output (YOU WIN) 
    end if; 
    v_answer := p_choice 
+0

Quelles sont les règles? En regardant le code et le pseudo code, rien n'a de sens. –

Répondre

2
CREATE or REPLACE Procedure WinOrLose (
    p_choice number) AS 
BEGIN 
    dbms_output.put_line ('Welcome to the Win or Lose Game. Your number is ' || 
    p_choice); 

    FOR v_counter in 1..p_choice LOOP 
    IF (MOD(v_counter, 2) = 0) 
    THEN 
      dbms_output.put_line ('You win'); 
    ELSE 
      dbms_output.put_line ('You lose'); 
    END IF; 
    END LOOP; 

    IF (MOD(p_choice , 2) = 0) 
    THEN 
    dbms_output.put_line ('==> You win!'); 
    ELSE 
    dbms_output.put_line ('==> You lose!'); 
    END IF; 
END; 
/
+0

Merci! Dernière question, comment pourrais-je produire "==> Vous perdez!" ou "==> Vous gagnez!" à la fin? – Lizzie

+0

@Lizzie Vous êtes les bienvenus! Je l'ai édité, laissez-moi savoir si cela fonctionne. Meilleur. –

+0

Merci beaucoup! – Lizzie