int main()
{
int secretnum = 7;
int Guess;
while (secretnum != Guess) {
cout << "Enter guess: ";
cin >> Guess;
}
cout << "You win";
return 0;
}
但是,我收到了1个警告和1个错误。
警告:使用未初始化的内存"猜测">
错误:未初始化的本地变量"Guess"使用
错误表明,在输入任何值之前,您使用Guess的值(在while语句中(。
根据经验,您应该在定义变量时初始化变量,这意味着:
int guess = 0;
优于:
int guess; // This memory is uninitialized!
目前,猜测中的值是内存中的任何值,不应该使用!
为了尽可能清楚——我同意这样做……在这种情况下,while比while更可取,我想补充一点,初始化仍然很重要:
#include <iostream>
#include <limits>
int main()
{
constexpr int secretnum = 7;
int guess = (secretnum == std::numeric_limits<int>::max())
? secretnum + 1
: secretnum - 1;
do {
std::cout << "Enter a guess: " << std::endl;
std::cin >> guess;
} while (secretnum != guess);
std::cout << "You win" << std::endl;
return 0;
}