有没有更简单的方法在C++中的for循环中定义条件?

Moh*_*q J -3 c++ for-loop conditional-statements

考虑一个arr[10]大小为10 的数组.在获取/显示数据时,我们使用以下常见语法的for循环

for(int i=0;i<10;i++)
Run Code Online (Sandbox Code Playgroud)

如果是字符串,就像

for(int i=0;strlen(arr)>i;i++)
Run Code Online (Sandbox Code Playgroud)

但我在某处读过一个更简单的表达式,arr[i]可以只用在条件的位置.我已经尝试运行具有该条件的代码.但是我收到了一个错误.那么有一个类似的,简单的条件表达式可以用于数组/字符串吗?

Ron*_*Ron 7

for语句文档中所述:

条件可能是声明

使用以下代码演示:

int main(){
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
    for (int i = 0; int x = arr[i]; ++i){
        std::cout << x << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

退出循环一旦arr[i]变成0和被分配到x导致整个情况,以评价false.为什么会有更详细的信息:

使用brace-or-equals初始化程序声明单个变量.在每次迭代之前评估初始化程序,如果声明的变量的值转换为false,则退出循环.

  • 我到底怎么回事._. (4认同)

sch*_*312 7

既然你说简单和c ++,请使用std :: string.

std::string str = ???;
for(char& c : str) {
    do_things_with(c);
}
Run Code Online (Sandbox Code Playgroud)

摘自这篇文章.

  • 是的,这是一个基于范围的循环.和? (2认同)