我有一个变量count。每次满足条件时,我都会添加一个条件。但是,它表示“永远不会使用该值”。但是,当我将变量移到for循环外时,它可以工作。这是范围问题吗?

for (int i = 0; i < farmers; i++) {
    int count = 0;
    int temp_work_streak;
    if (end_times[i] <= end_times[i + 1] && end_times[i] >= start_times[i + 1]) {
        count++; // the value is never used
    } else {
        temp_work_streak = end_times[i] - start_times[i - count];
        if (temp_work_streak > work_streak) {
            work_streak = temp_work_streak;
        }
        count = 0;
    }
}

最佳答案

问题确实是范围界定之一。
变量count仅在循环内部是局部的,其生存期仅是当前迭代。每次迭代都有一个全新的count变量。它不会在循环的迭代之间保留其值。
该变量可以在count++i - count中使用,但不能同时使用。
您已经注意到,解决方案是在循环开始之前定义变量。

关于c++ - C++永远不要使用该值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63497591/

10-12 14:56
查看更多