草庐IT

Switch-case

全部标签

c++ - 为什么切换/Case 而不是 If/Else If?

这个问题主要针对C/C++,但我猜其他语言也有关系。我不明白为什么仍然使用switch/case而不是if/elseif。在我看来,这很像使用goto,并导致相同类型的困惑代码,而使用if/elseif可以以更有条理的方式实现相同的结果。不过,我还是经常看到这些街区。找到它们的常见位置是在消息循环(WndProc...)附近,而这些是它们引发最严重破坏的地方之一:变量在整个block中共享,即使不合适(并且不能在里面初始化)。必须特别注意不要放弃休息,等等......就我个人而言,我避免使用它们,我想知道我是否遗漏了什么?它们是否比if/else更有效?它们是按照传统进行的吗?

javascript - JavaScript中字符串匹配的switch语句

如何为以下条件编写开关?如果url包含“foo”,则settings.base_url为“bar”。以下实现了所需的效果,但我觉得这在switch中会更易于管理:vardoc_location=document.location.href;varurl_strip=newRegExp("http:\/\/.*\/");varbase_url=url_strip.exec(doc_location)varbase_url_string=base_url[0];//BASEURLCASES//LOCALif(base_url_string.indexOf('xxx.local')>-1){

javascript - 大于/小于的 switch 语句

所以我想使用这样的switch语句:switch(scrollLeft){case(1000&&现在我知道这些语句()或(>1000&&)中的任何一个都不起作用(显然出于不同的原因)。我要问的是最有效的方法来做到这一点。我讨厌使用30if语句,所以我宁愿使用switch语法。有什么我可以做的吗? 最佳答案 当我查看其他答案中的解决方案时,我看到了一些我知道对性能不利的事情。我打算将它们放在评论中,但我认为最好对其进行基准测试并分享结果。您可以testityourself.以下是我在每个浏览器中以最快速度运行后标准化的结果(ymmv)

javascript - AngularJS : How do I switch views from a controller function?

我正在尝试使用AngularJS的ng-click功能来切换View。我将如何使用下面的代码执行此操作?index.htmlclickmecontroller.jsfunctionCntrl($scope){$scope.someFunction=function(){//codetochangeview?}} 最佳答案 为了在不同的View之间切换,您可以直接更改window.location(使用$location服务!)index.html文件editpreviewController.jsfunctionCntrl($sco

select - break 语句是否从 switch/select 中断?

我知道switch/select语句在每个case之后都会自动中断。我想知道,在以下代码中:for{switchsometest(){case0:dosomething()case1:breakdefault:dosomethingelse()}}break语句是退出for循环还是仅退出switchblock? 最佳答案 Breakstatements,TheGoProgrammingLanguageSpecification.A"break"statementterminatesexecutionoftheinnermost"fo

php - Switch Case 或 if else if 哪个更快更好?

哪种方法更好最快:if或switch?if(x==1){echo"hi";}elseif(x==2){echo"bye";}switch(x){case1...break;default;} 最佳答案 你的第一个例子是完全错误的。您需要elseif而不仅仅是else。如果您使用if..elseif...或switch主要是偏好问题。性能是一样的。但是,如果您的所有条件都是x==value类型且x在每个条件中都相同,则switch通常会使感觉。如果有更多,我也只会使用switch两个条件。switch实际上给您带来性能优势的一种情况是

java - 在 switch 中使用数组作为 case 语句

我正在尝试做这样的事情,即在switch语句中使用数组。在Java中可能吗?如果不是,请说明一个可能的解决方案。boolean[]values=newboolean[4];values[0]=true;values[1]=false;values[2]=false;values[3]=true;switch(values){case[true,false,true,false]:break;case[false,false,true,false]:break;default:break;} 最佳答案 @sᴜʀᴇsʜᴀᴛᴛᴀ是对的。但

java - 为什么我们在 case 语句之后需要 break?

为什么编译器不自动在switch中的每个代码块之后放置break语句?是因为历史原因吗?您希望何时执行多个代码块? 最佳答案 有时将多个案例关联到同一个代码块会很有帮助,例如case'A':case'B':case'C':doSomething();break;case'D':case'E':doSomethingElse();break;等等。只是一个例子。根据我的经验,“失败”并为一个案例执行多个代码块通常是不好的风格,但在某些情况下可能会有用处。 关于java-为什么我们在case

Java 使用带有 switch 语句的枚举

我查看了与此问题类似的SO上的各种问答,但没有找到解决方案。我所拥有的是一个枚举,它代表查看电视指南的不同方式...在NDroidApplication类中staticenumguideView{GUIDE_VIEW_SEVEN_DAY,GUIDE_VIEW_NOW_SHOWING,GUIDE_VIEW_ALL_TIMESLOTS}...当用户更改View时,事件处理程序从0-2接收int,我想做这样的事情...在AndroidActivityonClick(DialogInterfacedialog,intwhich)事件处理程序//'which'isanintfrom0-2swit

Java switch 语句多例

只是想弄清楚如何为Javaswitch语句使用多种情况。这是我正在尝试做的一个示例:switch(variable){case5..100:doSomething();break;}与必须做的:switch(variable){case5:case6:etc.case100:doSomething();break;}如果可能的话,有什么想法,或者有什么好的替代方案? 最佳答案 第二个选项完全没问题。我不确定为什么响应者说不可能。这很好,我一直这样做:switch(variable){case5:case6:etc.case100:d