Loops 如果模拟循环,需要帮助了解
我不知怎的很难理解中的以下程序(您也可以阅读文章的原文),该程序应该模拟Loops 如果模拟循环,需要帮助了解,loops,if-statement,logic,Loops,If Statement,Logic,我不知怎的很难理解中的以下程序(您也可以阅读文章的原文),该程序应该模拟如果x=0,则为END y:=1; LOOP x DO y:=0 END; LOOP y DO A END; 这究竟是如何模拟IF语句的?为什么我不能这样做: x:=0; LOOP x DO A END; 我不知道这种语言是什么,但如果假设循环cntr不结束执行stmt,只要cntr大于零(并且在每次迭代后递减),则其工作原理如下: 1被分配给y。如果x大于零,则分配y0。如果x为零,y的值保持1。在下一个循环中,如果y
如果x=0,则为END
y:=1;
LOOP x DO y:=0 END;
LOOP y DO A END;
这究竟是如何模拟IF
语句的?为什么我不能这样做:
x:=0;
LOOP x DO A END;
我不知道这种语言是什么,但如果假设
循环cntr不结束代码>执行stmt
,只要cntr
大于零(并且在每次迭代后递减),则其工作原理如下:
1
被分配给y
。如果x
大于零,则分配y
0
。如果x
为零,y
的值保持1
。在下一个循环中,如果y
是1
,则执行一次A
,只有在前一个loop
语句没有执行时,也就是说,如果x
等于0
。这种构造的主要优点是A
只执行一次,如果x
的值大于零,则执行次数不如x
的值多,而循环x不结束代码>就可以了
以下是逻辑,一步一步:
y
设置为1
y
设置为零x
次。这相当于如果x 0那么y:=0 END
A
执行y
次(如果x
为零,则执行一次;如果x
为非零,则执行零次)
这三个步骤转化为:如果x
为零,则执行A
一次,否则执行A
零次(即不执行)。好的,如果我看对了,它的工作原理如下:如果x>0,则将y=0设置为x的值,然后运行A,如果x=0,则直接运行A。我说得对吗?如果x0
,那么y
将被设置为0
,下一个循环将执行A
零次。只有当x=0
时,y
将保留1
的值,并且在下一个循环中A
将执行一次。总之,如果x=0
,那么A
只执行一次。否则A
执行零次(即根本不执行)=>如果x=0,则结束
我认为,如果x0
则下一个循环将不会执行A
,因为y=0
。仅当x=0
,然后y=1
,这使得下一个循环只能运行1
-次。对吗?这是什么语言?您应该将其添加为标记。这是一种循环语言,非常旧,因此在stackoverflow中没有标记比FORTRAN和COBOL更糟?”因为这些都有标签。无论如何,这个问题需要一个关于语言的注释;如果没有标记,您可以在问题中指定“LOOP”是编程语言的名称,而不仅仅是对循环的引用。由于语言晦涩难懂,它还可以使用指向更多信息的链接。当然,你是对的。我现在就做。。