我正在尝试使用C ++使用循环和语句进行冷热的温暖游戏,但由于某些原因,在If语句之后循环停止并且不继续。有人能告诉我怎么解决这个问题?
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main() {
int rand1, input;
srand(time(NULL));
rand1 = rand() % (100 - 1) + 1;
cout << "Try guessing the number between 1 - 100" << endl;
for (int i = 1; i <= 100; i++) {
cin >> input;
if (input > rand1) {
cout << "Hot" << endl;
}
else if (input < rand1) {
cout << "Cold" << endl;
}
}
cin.get();
cin.get();
return 0;
}
答案 0 :(得分:0)
问题不在你的if语句中;你的for循环缺少break
语句,如果用户猜到了正确的数字,它将终止循环并退出游戏。
如果没有break
语句,即使您已经猜到了正确的数字,循环也会继续运行,因为循环必须从i = 1
运行到i = 100
。
添加一个中断语句,如:
for (int i = 1; i <= 100; i++) {
cin >> input;
if (input > rand1) {
cout << "Hot" << endl;
}
else if (input < rand1) {
cout << "Cold" << endl;
}
else { // <---- If the user enters the correct number:
cout << "Success! The correct number WAS" << rand1 << endl; // Output success statement
break; // <---- Break out of the for-loop
}
}