switch-statement相关内容
我目前正在使用 switch 语句来处理传入消息的类型,其中有 20 种左右不同的情况.其中一些情况发生的可能性比其他情况高出几个数量级. 热点编译器是否能够优化检查案例的顺序以找到要执行的正确案例,或者我应该构造我的代码以便最常见的案例首先出现: switch(messageType){案例 MOST_COMMON://处理它休息;...案例 LEAST_COMMON://处理它休息;}
..
假设我有这样的事情: switch ($_GET['func']) {案例“富":多巴();休息;案例“橙色":if ($_GET['茄子'] == '猫狗') {//**做默认选项**} 别的 {dosomethingElse();}休息;默认:做默认();} 如何从case 'orange'中的标记点跳转到default case? 解决方案 试试: switch($_GET['
..
我的意图是在同一个 switch 语句中在另一个案例中调用两个案例, switch (orderType) {情况1:声明1;休息;案例2:声明 2;休息;案例3:**调用案例 1;****调用案例 2;**休息;默认:休息;`} 我们可以在 Java 中做到这一点吗? 解决方案 虽然不能直接影响switch case,但是可以从一个case调用switch的父方法,传递不同的参数.例
..
我想知道为什么 C# 要求我在 switch 语句中使用 break,尽管根据定义不允许贯穿语义.因此,编译器可以在每个 case 块的末尾生成 break 并为我省去麻烦. 但是,我可以提出一种情况(已在本网站上讨论过),这可能是显式使用 break 的原因: switch (foo) {案例0:情况1:酒吧();休息;默认:休息;} 这里,如果 foo 的值为 0 或 1,则调用方法
..
我有一个开关,在极少数情况下我可能需要跳到另一个案例,我正在寻找这样的东西: switch($var){案例:'一个'if($otherVar != 0){//任何条件,无关紧要//转到案例y;}别的{//案例一个}休息;案例“b"://案例b代码休息;案例“c":if($otherVar2 != 0){//任何条件,无关紧要//转到案例y;}别的{//案例c}休息;...案例“x"://案例x
..
我在 DRBD 软件 (user/drbdtool_common.c) const char* shell_escape(const char* s){/* 丑陋的静态缓冲区.所以呢.*/静态字符缓冲区[1024];字符 *c = 缓冲区;如果(s == NULL)返回 s;而 (*s) {if (buffer + sizeof(buffer)
..
在编写有关 Typescript 的 Lynda 教程时(https://www.lynda.com/Visual-Studio-tutorials/TypeScript-types-part-2/543000/565613-4.html#tab ),我遇到了障碍.示例代码说明了 switch 语句在 TypeScript 中是如何工作的,但是对于讲师来说似乎可以正常工作的代码会引发 Type '
..
在 Javascript 中有没有一种方法可以在不使用 if 语句的情况下通过 switch case 结构将一个整数与另一个整数进行比较? 例如 switch(整数) {案例 1 到 10:休息;案例 11 至 20:休息;案例 21 至 30:休息;} 解决方案 你可以做一些数学运算. switch(Math.ceil(integer/10)) {case 1://整数在 1-1
..
下面是我需要优化和计划的代码,它会很好地转移到 switch 构造.但我可以比较case.所以我打算将比较 (len > 3) 作为 default 的情况. 如果我将比较部分 (len > 3) 作为默认情况并将 default 添加为开关中的第一个,会更快吗? 或者我怎样才能将下面的代码作为 switch 语句? if (len > 3) {//这会更频繁地发生;}否则 if (
..
在 PHP 中,switch 语句中的变量作用域是如何处理的? 例如,举个假设的例子: $someVariable = 0;开关($东西){情况1:$someVariable = 1;休息;案例2:$someVariable = 2;休息;}回声 $someVariable; 这会打印 0 还是 1/2? 解决方案 你的整个代码部分中的变量将是相同的:在 PHP 中没有“每个块"
..
我不明白这里发生了什么.从逻辑上讲,这对我来说没有任何意义. 80:$答案='高';休息;案例$级别>60: $answer = '中到高';休息;案例$级别>40: $answer = '中等';休息;案例$级别>20: $answer = '低到中等';休息;默认值:$answer = '低';休息;}回声$答案;?> 当 $level == 0 时,返回“high".这对我来说没有任何意
..
我想使用 switch 语句来检查一系列数字我发现一些地方说类似case 1...5 或 case (score >= 120) &&(score
..
这个问题让我想起了一个关于switch的老问题: int personType = 1;开关(personType){情况1:雇员 emp = new Employee();emp.ExperienceInfo();休息;案例2:雇员 emp = new Employee();//错误: 一个名为 'emp' 的局部变量已在此范围内定义emp.ManagementInfo();休息;案例3:学
..
我正在尝试编写一个 R 脚本来根据在范围内拟合值来评估不同的表达式.这个想法是,如果 Length 在一个范围内,它将以一种方式进行评估,如果它在一个较长的范围内,它将以不同的方式进行评估. 我可以使用 if/else 语句来完成这项工作,但它非常难看,而且我相信一定有更好的方法......这是有效的代码. 长度=8.2如果(长度 = 10)模式=“飞" 我一直在尝试用 switch 函
..
假设我有一堆静态字段,我想在 switch 中使用它们: 公共静态字符串 PID_1 = "12";公共静态字符串 PID_2 = "13";公共静态字符串 PID_3 = "14";开关(PID){案例 PID_1://做某事1休息;案例 PID_2://做某事2休息;案例 PID_3://做点什么 3休息;默认://做一些默认的事情休息;} 由于 C# 不允许在 switch 中使用非常量
..
switch(ch){案例“一"://做一些事情,条件不匹配所以转到默认情况//不要在这里闯入,也不要让其他情况陷入困境.案例“b"://..案例“c"://..案件 '_'://...默认://休息;} 在上面这样的 switch 语句中,我输入 case 'a',只有当其中的条件发生时才中断,否则我想跳转到默认情况.除了标签或 goto 之外,还有其他方法吗? 解决方案 goto F
..
我正在尝试编译以下代码而没有警告: while (window.pollEvent(event)){开关(事件类型){案例 sf::Event::Closed:窗口.close();休息;案例 sf::Event::KeyPressed:if(event.key.code == sf::Keyboard::Escape)窗口.close();if(sf::Keyboard::isKeyPres
..
我正在尝试使用 enum,我发现以下在 Eclipse 上编译并运行良好(Build id:20090920-1017,不确定确切的编译器版本): 公共类 SwitchingOnAnull {枚举 X { ,;}公共静态无效主要(字符串[]参数){X x = 空;开关(x){默认值:System.out.println("Hello world!");}}} 当使用 Eclipse 编译和运行
..
我在这里看到了针对特定语言的答案,关于使用跳转表优化超过 5 种情况的开关,以保证任何情况下的恒定访问时间. C/C++ 是这样吗? 它特别适用于 gcc 吗?视觉工作室? 如果没有,按发生频率排序是否有帮助? 解决方案 该标准不保证 switch 语句将如何实现.我从未见过编译器生成哈希表,尽管有不少编译器会生成跳转表.除非我的记忆力比平时更差,否则当案例足够密集时(对于“足够"的
..
我们每个人(可能)都有儿时写作的梦想: switch(my_std_string) {案例“foo":do_stuff();休息;case "bar": do_other_stuff();休息;默认值:just_give_up();} 但这是不可能的,正如过去(2009 年)对这个问题的回答中所解释的那样: 为什么switch语句不能应用于字符串? 从那时起,我们见证了 C++11
..