因此,我们的想法是向用户询问数组的每个元素,但在为第一个问题(它要求元素数量)提供输入后,没有任何反应.无法弄清楚为什么.
#include <iostream>
int main()
{
int numGrades;
tryAgain:
std::cout << "Enter number of grades" << std::endl;
std::cin >> numGrades;
if (numGrades > 30)
{
std::cout << "Please enter a valid number of grades" << std::endl;
goto tryAgain;
}
int grades[numGrades - 1];
int gradeCount = 0;
while (gradeCount < numGrades);
{
std::cout << "Enter grade number" << gradeCount + 1 << ":";
std::cin >> grades[gradeCount];
++ gradeCount;
}
std::cout << grades;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
构造while (true);意味着while (true) {}(即无限循环).
所以,当你写作
while (gradeCount < numGrades);
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
你有以下几点:
while (gradeCount < numGrades)
{
}
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果是,则永远不会执行第二个块gradeCount < numGrades.