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循环?
答案 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
。
循环迭代;检查一些条件n
次,如果,切换他们检查一次。因此,您无法将if-else转换为循环。
尝试使代码有效且尽可能小,这确实是一个很好的编程,但情况并非总是如此。如果是这样,为什么这些专家会用数百万个代码行构建一个庞大的程序。
您的代码运行正常。