【问题标题】:fit a number into the range if if chained将一个数字放入链式的范围内
【发布时间】:2019-12-25 22:27:24
【问题描述】:

我有一个总变量 我有 250 个范围内的 250 个 我需要知道变量在哪个范围内,但是在 15250 的范围内,如果被链接,则必须做超过 61 次,有另一种方法来消除这种 ifs 的重复吗? 谢谢您的帮助。 例子

 public void ValidTravel(int Traveled)
 {
    int total = 15250
    int range = 250   

     if (Traveled>= 1 && Traveled<= 250)
        {                
           return 250;
        }

     if (Traveled>= 251 && Traveled<= 500)
        {                
           return 500;
        }

     if (Traveled>= 501 && Traveled<= 750)
        {                
           return 750;
        }

     if (Traveled>= 751 && Traveled<= 1000)
        {                
           return 1000;
        }

}

【问题讨论】:

标签: c# .net if-statement switch-statement case


【解决方案1】:

您可以使用这些代码来检测范围并根据您的要求按 X 因子执行向上舍入

public int ValidTravel(int Traveled)
    {
        int total = 15250;
        int range = 250;
        double RetrunResult = 0;

        if (Traveled <= 0 || Traveled > total) // return error code -1 if Input value Traveled is not in range 1-15250
        { RetrunResult = -1; }
        else if (Traveled % range == 0) // use mod to cover value 250 , 500 , 750 , 1000....
        { RetrunResult = Traveled; } 
        else if (Traveled % 250 > 0)   // for those value that cant cover by mod , we will use divide value
        {
            double DivFactor = Traveled / 250;
            if (DivFactor >= 1)
            { RetrunResult = (Math.Ceiling(DivFactor) + 1 )* 250; } //  we know value greater then 250 so we will use ceiling function to force round up
            else if (DivFactor < 1)
            { RetrunResult = 250; }   // we know value is between 1-250 , so we will make RetrunResult = 250
        }


        return Convert.ToInt32(RetrunResult);


    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2015-04-06
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多