正确使用for循环

JDN*_*JDN 3 c++ loops for-loop

我现在正在学习c ++课程,我知道for循环会像这样工作,但我想知道它是"正常"还是"正确"

for (int i = 0; getline(cin, input); i++)
Run Code Online (Sandbox Code Playgroud)

应该这样做

int i = 0;
while (getline(cin, input))
    i++;
Run Code Online (Sandbox Code Playgroud)

我只是想知道,因为我知道for循环应该是一个计数器循环,但这个条件的条件与通过i控件的次数没有关系.

Jon*_*ood 6

是的,for循环的规则非常简单.只要您符合规则,语法就可以是您想要的任何内容.

在这两个中,只需选择您认为最具可读性的那个.


das*_*ght 5

严格地说,没有"正确"的方式来编写一个for循环:你可以省去这三个部分的任意组合空白(实际上,K&R建议将所有三个空白留下来实现"永远"循环),并且没有硬具有停止条件的要求取决于循环计数器.

for环路上的一个优点while是,您可以continue在身体内部自由使用,而不必担心忘记增加计数器.这可能有助于具有大量嵌入continue语句的循环的可读性.