帕斯卡的重复...直到与C的比赛......同时

Bob*_*Bob 4 c syntax pascal loops

在C中有一个while循环和pascal(几乎)等价是重复直到循环,但两者之间有一个小的差异,而两个结构将至少迭代一次并检查它们是否只需要再次循环最后,在pascal中你编写了需要满足的条件来终止循环(REPEAT UNTIL something)在C中你写入需要满足的条件来继续循环(DO WHILE something).有没有理由存在这种差异,还是只是一个武断的决定?

Vot*_*ple 9

根本没有根本的区别,一方面没有优势.它只是"语法糖" - 对语言语法的改变,不会以任何实际方式改变其行为.有些人发现"重复直到"更容易概念化,而其他人则发现"重复"更容易.

如果在C语言中遇到"直到"是什么样的情况,你总是可以否定这个条件:

do {
    excitingThings();
} while ( !endOfTheWorld() );
Run Code Online (Sandbox Code Playgroud)

  • 至少,我们都做了一件令人兴奋的事情:D (2认同)

Mic*_*zek 0

我总是发现 UNTIL 向后循环,但这可能只是因为我来自 C 背景。有些现代语言(例如 Perl)同时提供这两种语言,但其中一种语言相对于另一种语言并没有任何特别的优势