回 帖 发 新 帖 刷新版面

主题:一个不明白的地方

本人刚刚学PASCAL,在循环那有个不明白的地方,请问,两个单循环和一个循环嵌套如何区别?

回复列表 (共10个回复)

沙发

两个单循环是并列关系的,它们的循环变量可以同名.
但是一个嵌套的循环是不同层次的,它们的循环变量不能同名.

板凳

-_-!!
这个,多看看就知道了,特征的确不好描述。。

3 楼

靠,不是这样的。我不是问这个。我的意思是,当两个循环语句在一起时,怎样区分是循环嵌套还是两个循环语句。

4 楼

如果回答的好,会考虑给你们加50分以内。

5 楼

哦,蓝风,你应该用心看看书了,呵呵。
关于你的问题,你看我的解释对不对。
用例子来说比较容易。
FOR A = 1 TO 6 DO
BEGIN 
FOR B = 1 TO 6 DO 
S=S+1
END;
以上语句可以清晰的看出是嵌套 一般用BEGIN和END;
FOR A = 1 TO 6 DO 
FOR B = 1 TO 6 DO
那个 关于这个语句 得通过上下语句来理解 我也不知道怎么解释

6 楼

应该是一个嵌套
一个单独的循环,语句应该用BEGIN和END匡起来
FOR A = 1 TO 6 DO
BEGIN
S=S+1
END; 
FOR B = 1 TO 6 DO
上面就是两个循环

7 楼

那麻烦问一下
FOR A = 1 TO 2 DO
X = X + 1 
FOR B = 1 TO 10 DO 
是两个循环还是一个嵌套?

8 楼

这个……理应说是两个循环

9 楼

楼上二位,这是PASCAL论坛,不是QB.
"FOR A = 1 TO 2 DO BEGIN"应该改为“FOR A:=1 TO 2 DO BEGIN"
(PASCAL里的赋值号是":=",不是"=")
算了,给你举一个例子:
VAR
   i, j, k, s: INTEGER;
BEGIN
   FOR i:=1 TO 10 DO BEGIN
       FOR j:=1 TO 5 DO BEGIN
           FOR k:=1 TO 2 DO INC(s);
       END;
   END;
   WRITELN(s);
END.
可以把FOR循环的嵌套看作一个栈(Stack).进栈就是一个循环的开始(BEGIN语句),出栈就是一个循环的结束(END;语句)

首先,栈是空的:
            ------------------------
                                   |
            ------------------------
然后,循环i开始,进栈:
            ------------------------
                              i    |
            ------------------------
然后,循环j开始,进栈:
            ------------------------
                       j      i    |
            ------------------------
然后,循环k开始,进栈:
            ------------------------
                k      j      i    |
            ------------------------
但是在出栈的时候,由于栈具有后进先出的特点,因此最后进栈的元素k最先出栈,然后j出栈,最后出栈的元素是i.出栈的过程如下:
            ------------------------
                k      j      i    |
            ------------------------
            ------------------------
                       j      i    |
            ------------------------
            ------------------------
                              i    |
            ------------------------
            ------------------------
                                   |
            ------------------------
因此后开始的循环先结束.

10 楼

LS,对不起啦,又把QB的东西带进来了。
注意又注意,没想到,还是写错了

我来回复

您尚未登录,请登录后再回复。点此登录或注册