新手编程。
想要添加一条说错误输入的消息.. 但不知道该怎么做。
该程序有效但希望添加错误消息,以便用户无法按错按钮
尝试像while循环中的if语句一样
if (input != "A" && input != "a" && input != "S" && input != "s")
cout << "not valid options << endl;
并且请告诉我是否可以以任何方式改进代码,总是很好知道我是否以良好的方式做事。
这是我的程序代码
#include <cmath>
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <string>
using namespace std;
int main()
{
locale swedish("swedish"); // tar in svenska tecken
locale::global(swedish);
int marker = 100; // marker som man börjar med
int num1, num2, num3; // numren som ska slumpas senare
string input;
cout << "Välkommen till mitt slumptalspel!!"<< endl ;
cout << " Detta spel går ut på att man ska få mer än 450" << endl;
cout << "så får man mer marker och får man mindre än 450 så förlorar man marker" << endl;
cout << " får man mer än 200 marker så vinner man !!" << endl;
cout << " och tar markerna slut så har man förlorat" << endl;
while (input != "A" && input != "a")
{
cout << "Du har " << marker << " marker. spela tryck [S] avsluta tryck [A]"<< endl;
cin >>input; // här bestämmer sig spelaren för om han vill spela eller inte med s eller a
if (input == "S" || input == "s")
{
num1 = rand() % 350 + 1; // här slumpas talen ut
num2 = rand() % 350 + 1;
num3 = rand() % 350 + 1;
cout << "[" << num1 << "][" << num2 << "][" << num3 << "]" << endl; // här skrivs num1 till 3 ut vad dom får för värden
srand(time(0));
if (num1 + num2 + num3 >= 450) // om väret tillsammans blir mer än 450
{
marker += 12; // lägg till 12 marker
cout << "du vann 12 marker =) " << endl;
}
else
{
cout << " Du förlorade 50 marker" << endl; // annars ta bort 50 marker
marker -= 50;
}
if (marker <= 0) // om markerna är 0 eller mindre
{ // så är spelet slut
cout << " Spelet är slut du har inga marker kvar" << endl;
return 0;
}
if (marker >= 200 )
{
cout << " du vann GRATTIS!!" << endl; // om man får 200 eller mer marker så vinner man och spelet avslutas sedan
return 0;
}
}
}
cout << "Spelet avslutas " << endl; // om man avbryter med A så avslutas det så här med detta meddelande
return 0;
}
尝试过切换,因为有人在这里对我说,那么问题是它永远不会停止,当marker
为0或更小或200时它应该停止但是它会发生,
我做了像这样的代码
#include "stdafx.h"
#include <cmath>
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
locale swedish("swedish"); // tar in svenska tecken
locale::global(swedish);
int marker = 100; // marker som man börjar med
int num1, num2, num3; // numren som ska slumpas senare
char input;
int menu();
cout << "Välkommen till mitt slumptalspel!!" << endl;
cout << " Detta spel går ut på att man ska få mer än 450" << endl;
cout << "så får man mer marker och får man mindre än 450 så förlorar man marker" << endl;
cout << " får man mer än 200 marker så vinner man !!" << endl;
cout << " och tar markerna slut så har man förlorat" << endl;
do
{
cout << "Du har " << marker << " marker. spela tryck [S] avsluta tryck [A]" << endl;
cin >> input;
switch (input)
{
case 'A':
cout << " spelet avslutas" << endl;
return 0;
case 'S':
num1 = rand() % 350 + 1; // här slumpas talen ut
num2 = rand() % 350 + 1;
num3 = rand() % 350 + 1;
cout << "[" << num1 << "][" << num2 << "][" << num3 << "]" << endl; // här skrivs num1 till 3 ut vad dom får för värden
srand(time(0));
if (num1 + num2 + num3 >= 450) // om väret tillsammans blir mer än 450
{
marker += 12; // lägg till 12 marker
cout << "du vann 12 marker =) " << endl;
break;
}
else
{
cout << " Du förlorade 50 marker" << endl; // annars ta bort 50 marker
marker -= 50;
break;
}
if (marker <= 0) // om markerna är 0 eller mindre
{ // så är spelet slut
cout << " Spelet är slut du har inga marker kvar" << endl;
return 0;
}
if (marker >= 200)
{
cout << " du vann GRATTIS!!" << endl; // om man får 200 eller mer marker så vinner man och spelet avslutas sedan
return 0;
}
default:
cout << " nope inget giltigt val " << endl; // Om man väljer ett alternativ som inte finns så kommer detta meddelande fram
break;
}
} while (input != 'q' )
;
}
答案 0 :(得分:1)
您可以使用switch语句使其更好,并且在default
情况下,您可以打印所需的输出:
switch(input)
{
case 'A':
//Do something and break.
case 'a':
//Do something and break.
.
.
.
default:
cout<<"not valid options" << endl;
}
答案 1 :(得分:0)
我修好了,
#include "stdafx.h"
#include <cmath>
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
locale swedish("swedish"); // tar in svenska tecken
locale::global(swedish);
int marker = 100; // marker som man börjar med
int num1, num2, num3; // numren som ska slumpas senare
char input;
cout << "Välkommen till mitt slumptalspel!!" << endl;
cout << " Detta spel går ut på att man ska få mer än 450" << endl;
cout << "så får man mer marker och får man mindre än 450 så förlorar man marker" << endl;
cout << " får man mer än 200 marker så vinner man !!" << endl;
cout << " och tar markerna slut så har man förlorat" << endl;
cout << " tre tal kommer att slumpas och varje tal kan vara mellan 1 och 350" << endl;
cout << " LYCKA TILL!!!" << endl;
do
{
if (marker <= 0) // om markerna är 0 eller mindre
{ // så är spelet slut
cout << " Spelet är slut du har inga marker kvar" << endl;
return 0;
}
if (marker >= 200)
{
cout << " du vann GRATTIS!!" << endl; // om man får 200 eller mer marker så vinner man och spelet avslutas sedan
return 0;
}
cout << "Du har " << marker << " marker. spela tryck [S] avsluta tryck [A]" << endl;
cin >> input;
switch (input)
{
case 'A':
cout << " spelet avslutas" << endl;
return 0;
case 'a':
cout << " spelet avslutas" << endl;
return 0;
case 'S':
num1 = rand() % 350 + 1; // här slumpas talen ut
num2 = rand() % 350 + 1;
num3 = rand() % 350 + 1;
cout << "[" << num1 << "][" << num2 << "][" << num3 << "]" << endl; // här skrivs num1 till 3 ut vad dom får för värden
srand(time(0));
if (num1 + num2 + num3 >= 450) // om väret tillsammans blir mer än 450
{
marker += 12; // lägg till 12 marker
cout << "du vann 12 marker =) " << endl;
break;
}
else
{
cout << " Du förlorade 50 marker" << endl; // annars ta bort 50 marker
marker -= 50;
break;
}
case 's':
num1 = rand() % 350 + 1; // här slumpas talen ut
num2 = rand() % 350 + 1;
num3 = rand() % 350 + 1;
cout << "[" << num1 << "][" << num2 << "][" << num3 << "]" << endl; // här skrivs num1 till 3 ut vad dom får för värden
srand(time(0));
if (num1 + num2 + num3 >= 450) // om väret tillsammans blir mer än 450
{
marker += 12; // lägg till 12 marker
cout << "du vann 12 marker =) " << endl;
break;
}
else
{
cout << " Du förlorade 50 marker" << endl; // annars ta bort 50 marker
marker -= 50;
break;
}
default:
cout << " nope inget giltigt val försök igen " << endl; // Om man väljer ett alternativ som inte finns så kommer detta meddelande fram
break;
}
} while (input != 'QK')
;
}