我正在尝试找到一个代码来创建一个如...的框 XXX XXX XXX (exp.3x3)取决于用户输入的行和高度变量。我的嵌套循环无法正常工作。我能帮忙吗?
继承人代码......
Set ServerOutput on;
Declare
RectangleHeight Number(2):=5;
RectangleWidth Number(2):=;
RowCount Number(1) :=0;
ColumnCount Number(1) :=0;
Begin
Loop
Exit When RowCount>=RectangleHeight;
Loop
Exit When ColumnCount>=RectangleWidth;
dbms_output.put_line('X');
ColumnCount := ColumnCount+1;
End Loop;
RowCount := RowCount+1;
End Loop;
End;
答案 0 :(得分:0)
对于循环而言,Nothings确实是错误的,因为逻辑需要稍微调整一下
首先,你在第5行遇到语法错误:RectangleWidth Number(2):=;
解决我们还有一些问题需要解决。
1)您在循环的宽度部分中的每个\n
之后放置一个新行X
。这应该是没有新行的单X
2)输出对象宽度后,ColumnCount
变量会发生什么?
3)输出整行后,如何进入新行?
带注释的示例代码:
SET ServerOutput ON;
DECLARE
RectangleHeight NUMBER(2) :=5;
RectangleWidth NUMBER(2) :=9; -- FIXED SYNTAX ERROR
RowCount NUMBER(1) :=0;
ColumnCount NUMBER(1) :=0;
BEGIN
LOOP
EXIT WHEN RowCount>=RectangleHeight;
LOOP
EXIT WHEN ColumnCount>=RectangleWidth;
dbms_output.put('X'); -- DON'T PUT A NEW LINE, JUST USE PUT
ColumnCount := ColumnCount+1;
END LOOP;
ColumnCount := 0; -- AFTER A SUCCESSFUL ROW IS OUTPUT, WE RESET OUR COLUMN COUNTER
RowCount := RowCount+1;
dbms_output.put_line(null); -- JUST OUTPUTTING A BLANK LINE
END LOOP;
END;
/
输出使用5
和9
分别作为高度和宽度的输入:
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
我觉得这是作业,但我总是喜欢这些视觉问题。