为什么以这种方式使用 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;
}
所以这里的 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;
}