For 循环是否总是至少执行一次?

Is a For Loop always executed at least once?

提问人:Klaus9090 提问时间:7/6/2017 最后编辑:Klaus9090 更新时间:2/24/2019 访问量:37288

问:

根据我的老师的说法,即使不满足条件,for 循环也总是至少执行一次。

示例(就像我从 C++ 中知道的那样):

for (int i=6; i <=5; i++) {
    //irrelevant for this question
}

根据她的说法,这个循环至少会执行一次,但它没有,或者我错过了什么? 有没有一种情况,无论什么语言,这都会在什么地方执行一次? 提前消除这个想法:是的,这是关于 for 循环,而不是 do-while-loops。

编辑

感谢所有这些快速的回答,我想这个案子已经结案了。祝您度过愉快的一天/夜晚。

C++ for 循环 与语言无关

评论

5赞 François Andrieux 7/6/2017
关于 c++,你的老师错了。如果条件在第一次迭代之前为 false,则循环根本不会执行。for
5赞 PYA 7/6/2017
只保证循环至少运行一次do while
5赞 Baum mit Augen 7/6/2017
你的老师的陈述是完整的,完全是胡说八道,正如你的测试很容易证明的那样。
3赞 François Andrieux 7/6/2017
@BaummitAugen OP在测试自己之外进行研究是正确的。C++ 臭名昭著,因为直接观察远远不足以确定是否以及如何定义行为。
3赞 Barmar 7/6/2017
@KenWhite 似乎他做了那个测试,因为他的问题是“但事实并非如此”。

答:

24赞 NonCreature0714 7/6/2017 #1

可以说 for 循环总是至少计算一次。

但是,如果不满足 for 循环的条件,则其块将永远不会执行。

因为你没有问其他循环,所以我不会讨论这些问题。

评论

0赞 Klaus9090 7/6/2017
在这种情况下,评估意味着检查条件是真是假,对吧?
0赞 NonCreature0714 5/3/2022
这是,而且永远是正确的。
7赞 NathanOliver 7/6/2017 #2

循环仅在其条件为 true 时执行。由于循环和循环都在执行正文之前检查条件,因此如果条件为 false,则它们将永远不会执行。forwhile

唯一会的循环是循环。对于循环,直到循环结束才会评估条件。因此,循环将始终至少执行一次。do whiledo whiledo while

0赞 Rajeev Singh 7/6/2017 #3

如果条件是 ,则入口控制循环将永远不会执行,但是,退出控制循环将至少执行一次。false

1赞 Eesha 7/6/2017 #4

在运行程序之前,for 循环始终确保条件为 true。然而,do 循环至少运行一次程序,然后检查条件。