我想要的是讓它讓用戶猜測數字的次數和猜測它的次數,然後告訴他所花費的次數他猜測它,這就是爲什麼im for for循環g!= r的條件,但是,我不知道C++是否允許這樣做。我的switch語句不會讓我使用一個特定的變量作爲表達式
而且,錯誤,我得到在編譯的時候這是
expression must have a constant value
expression did not evaluate to a constant" and "case expression not constant
Here's代碼:
int main()
{
int r = rand() % 101;
int g = 0;
int t = 10;
std::cout << "Guess a number, human (From 1 to 100)." << std::endl;
std::cin >> g;
for (int t = 0; g != r; t++)
{
switch (g) {
case (g == r):
std::cout << "You won, now get lost!" << std::endl;
break;
case (g < r):
std::cout << "Too low, piece of turd." << std::endl;
break;
case (g > r):
std::cout << "Too high, dubai." << std::endl;
break;
default :
std::cout << "How could you possibly have gotten it wrong, you stupid ape." << std::endl;
}
}
std::cout << "Finally!, it took you " << t << " freaking times!" << std::endl;
return 0;
}
開關只讓你測試相等到一個特定的值,而不是一個範圍。你可以說switch(g){case(r):..}但不是g> r或g
這段代碼應該寫成if(g == r)... else if(g r)... else ...;',儘管最後的else '子句將永遠不會被執行。 –
你甚至不能說'case r',@Jeff。 case表達式需要是編譯時常量。 –