cout << " 13 - Golf Comeptition.\n";
int score, handicap, netscore, players = 0, mswinner = 0, fswinner = 0, i = 1;
string name, mwinner, fwinner;
char gender;
while (name != "end" || name != "END")
{
cout << "Is This Player Male Or Female (M/F).\n";
cin >> gender;
if (gender == 'M' || gender == 'm' || gender == 'F' || gender == 'f')
{
cout << "Enter player " << i << "s name.\n";
cin >> name;
cout << "Enter " << name << "s score.\n";
cin >> score;
if (score <= 60 || score >= 100)
{
cout << "You Entered a score not in the range of 60-100.\n";
cout << "Enter " << name << "s score.\n";
cin >> score;
}
else
{
cout << "Enter " << name << "s handicap.\n";
cin >> handicap;
if (gender == 'M' || gender == 'm' && handicap <= 0 || handicap >= 28)cout << "please only enter a handicap within the range of 0-28 for males.\n and 0-36 for females.\n";
else if (gender == 'F' || gender == 'f' && handicap <= 0 || handicap >= 36) cout << "please only enter a handicap within the range of 0-28 for males.\n and 0-36 for females.\n";
else netscore = score - handicap;
if (gender == 'M' || gender == 'm')
{
if (netscore > mswinner)
{
mswinner = netscore;
mwinner = name;
}
}
else if (gender == 'F' || gender == 'f')
{
if (netscore > fswinner)
{
fswinner = netscore;
fwinner = name;
}
}
i++;
}
}
else
{
cout << "Please Enter A Valid Gender.\n";
}
}while(score <= 100 && score >= 60)
cout << "The male winner is " << mwinner << " With a score of " << mswinner << ".\n";
cout << "The female winner is " << fwinner << " With a score of " << fswinner << ".\n";
如果您输入任何内容,但大多数内容都会像性别验证一样,但是列出的内容无效,并会要求您重新输入。
如果您输入的分数高于100,则会出现一个主要缺陷,然后它会显示错误消息并允许您重新输入分数,但如果您输入的分数低于60,则会跳回或向前跳转以输入性别玩家;选手。
我已经对验证做了一些研究,最常见的方法是我尝试的方式,但我不知道它为什么不起作用。
由于这个错误,我不知道根据这部分的经验判断差点的验证是否有效。我不认为。
我也是这个网站的新手并且习惯了人们对我的需求,所以如果我错过了你需要的任何东西,请告诉我如果需要我可以加入图片。
答案 0 :(得分:0)
它的工作原理是这样的,因为这就是你编写的代码:
if (X)
{
Y;
}
else
{
Z;
}
如果“X”为真,则只执行“Y”部分,而不是Y和Z.这就是if
语句的工作原理。
这里,“X”部分检查分数是否无效。 “Y”是您的代码,要求您再次输入分数。就一次。并且“Z”是您的代码,询问关于障碍的下一个问题。
因此,如果最初输入的分数无效,您的“Y”代码会再次询问,并且:
它不会重新检查第二次输入的分数值,以查看第二个商店是否有效。如果您的目的是要求输入有效分数,这甚至不是正确的方法。你必须继续要求输入正确的分数,直到它有效,而不是仅仅要求它再次重新进入,而不是检查它。
并且它不执行“Z”部分。因为,正如我所提到的,这就是if
语句的工作方式。