验证分数范围并为男性和女性设定不同的差点范围c ++

时间:2016-03-20 01:48:36

标签: c++ validation

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,则会跳回或向前跳转以输入性别玩家;选手。

我已经对验证做了一些研究,最常见的方法是我尝试的方式,但我不知道它为什么不起作用。

由于这个错误,我不知道根据这部分的经验判断差点的验证是否有效。我不认为。

我也是这个网站的新手并且习惯了人们对我的需求,所以如果我错过了你需要的任何东西,请告诉我如果需要我可以加入图片。

1 个答案:

答案 0 :(得分:0)

它的工作原理是这样的,因为这就是你编写的代码:

if (X)
{
    Y;
}
else
{
    Z;
}

如果“X”为真,则只执行“Y”部分,而不是Y和Z.这就是if语句的工作原理。

这里,“X”部分检查分数是否无效。 “Y”是您的代码,要求您再次输入分数。就一次。并且“Z”是您的代码,询问关于障碍的下一个问题。

因此,如果最初输入的分数无效,您的“Y”代码会再次询问,并且:

  • 它不会重新检查第二次输入的分数值,以查看第二个商店是否有效。如果您的目的是要求输入有效分数,这甚至不是正确的方法。你必须继续要求输入正确的分数,直到它有效,而不是仅仅要求它再次重新进入,而不是检查它。

  • 并且它不执行“Z”部分。因为,正如我所提到的,这就是if语句的工作方式。