检查号码的功能

时间:2017-10-16 22:24:10

标签: c++ function

我想知道最有效的检查方法,看看我们从用户那里获取的数字是否介于两个数字之间,否则我们会将其设置为默认值。

示例如果我们想让他们随机猜测三个数字1-25但是如果他们猜测27 20 10.他们在三个中的两个输入有效猜测。

所以我可以这样做:

if(g1 > 25 || g1 <0) {
     if(g1 >25) g1=25;
     if(g1 < 0) g1 =0;
}

然后整个更多if语句来检查输入。我知道我可以使用一个函数来检查这个但是很难。我想通过它,并意识到我可以做如果g1&gt; 25 || G2&GT; 25 || G3&GT; 25然后我可以调用一个函数并运行它。但是我仍然会使用相同数量的if和if else语句,所以这不是最有效的方式。

纯粹的想法

if (g1 >25 || g2> 25 || g3> 25) {
    guesstobig(g1,g2);
}

然后,这只相当于我的函数中的相同数量:

int guesstobig(int g1, int g2){
    if(g1>25) g1=25;
    if(g2 >25) g2=25;
    return g1, g2;
}

2 个答案:

答案 0 :(得分:2)

怎么样:

int clamp(int i)
{
    if(i<0)
        return 0;
    if(i>25)
        return 25;
    return i;
}

g1 = clamp(g1);
g2 = clamp(g2);
g3 = clamp(g3);

这样,如果每个输入低于0,则检查一次;如果不是,则检查一次,如果超过25,则检查一次。

答案 1 :(得分:1)

bool isBetween(int upperBound, int lowerBound, int inputNumber) {
    return !(inputNumber > upperBound || inputNumber < lowerBound);
}

如果inputNumber介于upperBoundlowerBound之间,则此函数将返回true。