具有 2 个条件的 C++ while 循环,VS。 for循环有2个条件?

C++ while loop with 2 conditions, VS. for loop with 2 conditions?

如果我想遍历一个字符串,并在找到字母 "o" 或字符串结尾时停止,使用 while 循环来检查这两个条件会有什么不同,或具有 2 个条件的 for 循环?

const int STRING_SIZE = 16;
char str[STRING_SIZE] = "a bunch of words";

for 循环

for (int i = 0; i < STRING_SIZE && str[i] != 'o'; i++){
    //do something
}

while 循环

int i = 0;

while (i < STRING_SIZE && str[i] != 'o'){
    //do something
    i++
}

两者在性能上有区别吗?一种做法比另一种更好吗?

两个循环之间的性能没有区别,除了:

for() 检查条件,如果为真则执行其主体。所以 for 类似于 while 循环。

do-while 循环的工作方式略有不同:先执行然后检查,因此至少可以确保执行。