我的代码在猜测秘密数字时出现了问题。我想制作一个只有电脑进行猜测和回答的游戏。我尝试编写代码,但结果却陷入了无限循环。
这是我的代码:
#include <cstdlib>#include <time.h>#include <iostream>using namespace std;int main() { int lowest = 0; int highest = 9; srand(time(0)); int number; number = rand() % 9+1; int guess; guess = rand() % 9+1; do { if (number){ switch(number) { case 1: if(guess>lowest) lowest=guess; do { guess=rand()%9 +1; }while(guess<lowest || guess>highest); break; case 2: if(guess<highest) highest=guess; do { guess=rand()%9 +1; }while(guess<lowest || guess>highest); break; case 3: cout<<"\n\n\aHA! I got it right"<< endl; break; } if (guess < number){ cout << "Your guess is less than secret number"<<endl ; } else if (guess > number){ cout << "Your guess is high than secret number"<<endl ; } else cout << "Your guess is right!" << endl; } } while (guess != number); return 0;}
请帮助我解决这个问题。
回答:
我认为你对switch语句的工作原理有些困惑。按照你写的代码,它会查看number
的值,如果number
是1
(执行case 1),或者number
是2
,或者3
,它会做一些事情。如果number
不是这些选项中的一个,它就什么也不做。我猜你想要的是用if-else-if-else-if-...
块来替换switch。你似乎在基本语法上遇到了困难,特别是在控制流程方面。为了获取更多信息,你应该查看这个网站的第5章:http://www.learncpp.com/。我认为这将帮助你更好地理解你的代码在做什么。