为什么以这种方式使用 if 会阻止它 运行

Why using if in this way is preventing it from running

所以这里的 if 循环内是否可以以优化的方式编写 if 语句,或者我应该拆分这两个条件?

#include <iostream>
using namespace std;

int main()
{
    int grade, counter = 1, total = 0, average;

    while (counter <= 10)
    {
        cout << "Enter grade /100: ";
        cin >> grade;

        if (grade < 0 && grade > 100) //HERE PLEASE
        {
            cout << "invalid grade value." << endl;
            cout << "Reenter grade value */100*: ";
            cin >> grade;
        }
        
        total = total + grade;

        counter++;
    }
    
    average = total / 10;
    
    cout << "\nThe class average is:  " << average << endl;

    return 0;
}
if (grade < 0 && grade > 100)

没有小于1大于100的数,所以条件每次都会 return false.

如果您想要小于 1 大于 100,请尝试:

if (grade < 0 || grade > 100)

总的来说,您的代码应该是:

#include <iostream>
// using namespace std; is bad practice, so don't use it

int main()
{
    int grade = 0, counter = 1, total = 0, average = 0;

    while (counter <= 10)
    {
        std::cout << "Enter grade /100: ";
        std::cin >> grade;

        if (grade < 0 || grade > 100) 
        {
            // use newline character instead of std::endl
            std::cout << "invalid grade value." << '\n'; 
            std::cout << "Reenter grade value */100*: ";
            std::cin >> grade;
        }
        // a = a + b is equal to a += b
        total += grade;

        ++counter;
    }
    
    average = total / 10;
    
    std::cout << "\nThe class average is:  " << average << '\n'; 

    return 0;
}