2017-10-10 112 views
0

我想写这将产生以下输出While循环和if/else语句在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! 

程序到目前为止,我有这样的:

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; 
/

我不确定从那里去哪里。我的思维过程(伪码)是这样的:

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

什么是规则?查看代码和伪代码没有任何意义。 –

回答

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

谢谢!最后一个问题,我将如何输出“==>你输了!”或“==>你赢了!”最后? – Lizzie

+0

@Lizzie欢迎您!我编辑过它,让我知道它是否工作。最好。 –

+0

非常感谢! – Lizzie