Questions tagged «switch-statement»

在计算机编程中,switch,case,select或inspect语句是一种选择控制机制,用于根据变量内容调用特定的代码块。



10
大于/小于的切换语句
所以我想使用这样的switch语句: switch (scrollLeft) { case (<1000): //do stuff break; case (>1000 && <2000): //do stuff break; } 现在我知道,这些语句(<1000)或(>1000 && <2000)都不起作用(显然是由于不同的原因)。我要问的是最有效的方法。我讨厌使用30条if语句,所以我宁愿使用switch语法。有什么我可以做的吗?

18
为什么switch语句不能应用于字符串?
编译以下代码,得到的错误type illegal。 int main() { // Compilation error - switch expression of type illegal switch(std::string("raj")) { case"sda": } } 您不能在switch或中使用字符串case。为什么?是否有任何解决方案可以很好地支持类似于打开字符串的逻辑?


8
有效,但在转换情况下毫无价值的语法?
通过一点错字,我偶然发现了这个构造: int main(void) { char foo = 'c'; switch(foo) { printf("Cant Touch This\n"); // This line is Unreachable case 'a': printf("A\n"); break; case 'b': printf("B\n"); break; case 'c': printf("C\n"); break; case 'd': printf("D\n"); break; } return 0; } 语句printf顶部的似乎switch是有效的,但也完全无法访问。 我得到了干净的编译,甚至没有关于无法到达代码的警告,但这似乎毫无意义。 编译器是否应将其标记为无法访问的代码? 这有什么用吗?


12
如何在开关中使用null
Integer i = ... switch (i){ case null: doSomething0(); break; } 在上面的代码中,我不能在switch case语句中使用null。我该怎么做呢?我无法使用,default因为那之后我想做点其他的事情。


7
用于JavaScript中字符串匹配的switch语句
我该如何为以下条件写一个swtich? 如果网址包含 “ foo”,则settings.base_url为“ bar”。 以下实现了所需的效果,但是我感觉这在切换中将更易于管理: var doc_location = document.location.href; var url_strip = new RegExp("http:\/\/.*\/"); var base_url = url_strip.exec(doc_location) var base_url_string = base_url[0]; //BASE URL CASES // LOCAL if (base_url_string.indexOf('xxx.local') > -1) { settings = { "base_url" : "http://xxx.local/" }; } // DEV if (base_url_string.indexOf('xxx.dev.yyy.com') > -1) { settings = …

5
切换到失败状态?
我正在使用Bash中的失败案例寻找switch语句的正确语法(理想情况下不区分大小写)。在PHP中,我会像这样编程: switch($c) { case 1: do_this(); break; case 2: case 3: do_what_you_are_supposed_to_do(); break; default: do_nothing(); } 我想要在Bash中也一样: case "$C" in "1") do_this() ;; "2") "3") do_what_you_are_supposed_to_do() ;; *) do_nothing(); ;; esac 这种方式不起作用:do_what_you_are_supposed_to_do()$ C为2或3时应触发函数。

10
切换语句:默认值是否必须是最后一种情况?
考虑以下switch语句: switch( value ) { case 1: return 1; default: value++; // fall-through case 2: return value * 2; } 该代码可以编译,但是对于C90 / C99是否有效(=定义的行为)?我从未见过默认情况不是最后一种情况的代码。 编辑: 正如乔恩·凯奇(Jon Cage)和基里安(KillianDS)写道:这确实很丑陋和令人困惑的代码,我对此很清楚。我只对通用语法(是否已定义?)和预期的输出感兴趣。

23
切换if-else语句的优势
switch与使用if语句进行30个unsigned枚举(其中约10个具有预期动作(当前是相同动作))相比,使用语句的最佳实践是什么?性能和空间需要考虑,但不是关键。我已经摘录了摘要,所以不要因为命名约定而讨厌我。 switch 声明: // numError is an error enumeration type, with 0 being the non-error case // fire_special_event() is a stub method for the shared processing switch (numError) { case ERROR_01 : // intentional fall-through case ERROR_07 : // intentional fall-through case ERROR_0A : // intentional fall-through case ERROR_10 : …

13
Objective-C可以打开NSString吗?
有没有更聪明的方式来重写呢? if ([cardName isEqualToString:@"Six"]) { [self setValue:6]; } else if ([cardName isEqualToString:@"Seven"]) { [self setValue:7]; } else if ([cardName isEqualToString:@"Eight"]) { [self setValue:8]; } else if ([cardName isEqualToString:@"Nine"]) { [self setValue:9]; }

8
控件不能脱离一个案例标签
我试图编写一个switch语句,该语句将根据存在的任何搜索文本框在搜索字段中键入搜索词。我有以下代码。但是我收到“控件不能从一个案例标签掉下来”错误。 switch (searchType) { case "SearchBooks": Selenium.Type("//*[@id='SearchBooks_TextInput']", searchText); Selenium.Click("//*[@id='SearchBooks_SearchBtn']"); case "SearchAuthors": Selenium.Type("//*[@id='SearchAuthors_TextInput']", searchText); Selenium.Click("//*[@id='SearchAuthors_SearchBtn']"); } 控件不能从一个案例标签(case "SearchBooks":)落入另一个案例标签() 控件不能从一个案例标签(case "SearchAuthors":)落入另一个案例标签()

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.