代码为瑞典文btw.
int nyttal(int n){
int nyttal = rand() % 100 + 1;
return rand() % nyttal;
}
//Lak Lägg
void utforEnSpelomgang(){
const int n =100;
const int datornstal = nyttal(n);
int antalUtfardaGissningar = 0; //number of guesses made by user
cout << "Datorn tänker på ett tal mellan noll och " << n << ". Gissa vilket!" << endl;
int g;
cin >> g;
if(g < datornstal){ //if g is smaller than the programs number it will tell you that your guess is smaller
cout << "Mindre" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärde gissningar: " << antalUtfardaGissningar << endl;
cin >> g;
}
if(g > datornstal){ //user guessed a bigger number
cout << "Större" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
cin >> g;
}
if(g == datornstal){
cout << "Du gissade rätt" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
}
//Lägg
}
每次我运行代码时,游戏在两次猜测后结束,第二次甚至没有输出我写的代码行。如何让代码继续运行,直到用户猜对为止?
您可以使用/添加while
循环,如所示
void utforEnSpelomgang(){
const int n =100;
const int datornstal = nyttal(n);
int antalUtfardaGissningar = 0;
cout << "Datorn tänker på ett tal mellan noll och " << n << ". Gissa vilket!" << endl;
int g;
cin >> g;
while(g!= datornstal)//added this
{
if(g < datornstal){ //if g is smaller than the programs number it will tell you that your guess is smaller
cout << "Mindre" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärde gissningar: " << antalUtfardaGissningar << endl;
cin >> g;
}
if(g > datornstal){ //user guessed a bigger number
cout << "Större" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
cin >> g;
}
if(g == datornstal){
cout << "Du gissade rätt" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
break;//added this
}
}
//Lägg
}
在上面的程序中,我添加了两件事第一个是一个while
,第二个
如果你想知道为什么总是生成相同的数字,请看看如何在C++中生成随机数?
请注意,最后一个if
是多余的,因此您可以删除它,并将代码放在while循环之外的最后一个if
中,如下所示:
while(g!= datornstal)//added this
{
if(g < datornstal){ //if g is smaller than the programs number it will tell you that your guess is smaller
cout << "Mindre" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärde gissningar: " << antalUtfardaGissningar << endl;
cin >> g;
}
else if(g > datornstal){ //user guessed a bigger number
cout << "Större" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
cin >> g;
}
}
cout << "Du gissade rätt" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;