我觉得while
循环更接近你的意图。while
someCondition()
确实,您正在做某事true
,而增加myVar
是副作用。
while(myvar != someCondition()) {
doSomething();
myVar++;
}
需要明确的是:这些陈述是等价的。我只是在提倡我认为更惯用的代码。
你甚至可以使用do
/while
循环,但它对我来说有点不习惯。您将在下面找到三个示例;他们都做同样的事情,但感觉不同。任你选!
#include<iostream>
int someCondition() {
return 10;
}
void doSomething(int myVar) {
std::cout<<"... I'm doing something with myVar = "<<myVar<<std::endl;
}
int using_for() {
int myVar = 7;
for( ; myVar!=someCondition(); myVar++) {
doSomething(myVar);
}
return myVar;
}
int using_while() {
int myVar = 7;
while(myVar != someCondition()) {
doSomething(myVar);
myVar++;
}
return myVar;
}
int using_do() {
int myVar = 7;
do {
doSomething(myVar);
} while(++myVar != someCondition());
return myVar;
}
int main() {
std::cout<<"using for: "<<using_for()<<std::endl;
std::cout<<"using while: "<<using_while()<<std::endl;
std::cout<<"using do/while: "<<using_do()<<std::endl;
}
输出:
... I'm doing something with myVar = 7
... I'm doing something with myVar = 8
... I'm doing something with myVar = 9
using for: 10
... I'm doing something with myVar = 7
... I'm doing something with myVar = 8
... I'm doing something with myVar = 9
using while: 10
... I'm doing something with myVar = 7
... I'm doing something with myVar = 8
... I'm doing something with myVar = 9
using do/while: 10