将if-else转换为for循环

时间:2017-09-26 11:40:16

标签: c++ c++11

int max_range = 100;
// I do not want to add more else if.. Actually max range is still 100 with more else ifs.
// Range can take values from 0 to 100

if (range <= 10){
    a[0]= value;
}

else if (range > 10 && range <= 20){
    a[1]= value;
}

else if (range> 20 && range <= 30){
    a[2]= value;
}

else if (range > 30 && range <= 40){
    a[3]= value;
}

else if (range> 40 && <= max_range){
    a[4]= value;
}

这是简单的代码。我希望删除嵌套的else if并使用for循环。 如何将其转换为for循环?

3 个答案:

答案 0 :(得分:8)

你不需要循环,你正在做一个动作。

    self.webView?.stringByEvaluatingJavaScriptFromString
when we get data from Javascript by func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        if(message.name == "iMessageNameClicked") {
            print(message)
            debugPrint(message)
            print("iMessageBodyClicked: \(message.body)")
            }
}

答案 1 :(得分:0)

我的另一个答案是非常特殊的边界是10的倍数。运行时可修改的版本将类似于

std::set<int> boundaries = { 10, 20, 30, 40, max_range };

// ... potentially modify `a` and `boundaries`, keeping the number of elements equal

a[std::distance(boundaries.begin(), boundaries.lower_bound(range))] = value

答案 2 :(得分:0)

I would like it to remove the nested else if's and use a for loop可能是错误的表达:您的示例中没有nested if-else

  • 循环,if-else和switch的工作方式不同,但它们都处理条件:

循环迭代;检查一些条件n次,如果,切换他们检查一次。因此,您无法将if-else转换为循环。

  • 尝试使代码有效且尽可能小,这确实是一个很好的编程,但情况并非总是如此。如果是这样,为什么这些专家会用数百万个代码行构建一个庞大的程序。

  • 您的代码运行正常。