【问题标题】:While Loop and If/Else in PL/SQLPL/SQL 中的 While 循环和 If/Else
【发布时间】:2018-03-21 13:07:09
【问题描述】:

我正在尝试编写一个将产生以下输出的过程

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

【问题讨论】:

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

标签: sql if-statement plsql while-loop oracle10g


【解决方案1】:
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;
/

【讨论】:

  • 谢谢!最后一个问题,我将如何输出“==> 你输了!”或“==> 你赢了!”最后?
  • @Lizzie 欢迎您!我已经编辑了它,让我知道它是否有效。最好的。
  • 非常感谢!
猜你喜欢
  • 2023-03-22
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
相关资源
最近更新 更多