switch-statement相关内容
我看到了一些这样的 C 代码: int 检查 = 10:开关(检查){case 1...9: printf("从 2 到 9");break;案例 10: printf("是 10");break;} 这个 case 1...9: 是什么意思?标准吗? 解决方案 这是一个名为 case range 的 GNU C 扩展. http://gcc.gnu.org/onlinedocs
..
我正在尝试找到一个好的、干净的设计模式或普遍接受的实现来处理类型的枚举,其中单个类型仅在运行时才知道. 我知道以前有人问过类似的问题,但我仍然不清楚替代实现是否比 switch 或一系列 if-thens 具有显着优势. 首先,我要演示几个实现,然后我要问一个问题:这些实现比简单开关更好还是更受欢迎?如果是这样,为什么?如果没有,为什么不呢? 在我的应用程序中,我通过流发送和接收
..
我想知道使用 if 语句或 switch 之间是否有任何效率差异.例如: if(){//代码}否则如果(){//代码}别的{//代码} 我认为即使第一个 if 语句为真,程序也需要检查所有 if 语句. switch(i){情况1://代码休息;案例2://代码休息; 但是在switch里面,有一个break命令.我的接近正确吗?如果不是,您能解释一下它们之间的效率差异吗? 解决方案
..
这是来自 TTL: /////////////////////////////////////////////////////运行时类型切换模板::value)>结构类型开关;模板结构类型开关{模板无效运算符()(size_t i,F& f){
..
我使用的是 Java 8v60.我试图在 catch 块中嵌入关于异常组的开关.显然,案件已得到认可,但一旦他们进入交换机,他们就会继续处理所有可能的案件.这是 Java 错误吗? 看起来像这样: 试试{...} 捕捉(DateTimeParseException exc){...} 捕捉(myException exc){开关(exc.getEvent()){案例 EVENT_ONE :
..
我的问题不是关于如何解决这个错误(我已经解决了),而是为什么这个错误带有布尔值. 我的功能是 私有字符串 NumberToString(int number, bool flag){字符串 str;开关(标志){情况属实:str = number.ToString("00");休息;案例错误:str = number.ToString("0000");休息;}返回字符串;} 错误是使用未
..
我有两个枚举: 公共枚举 ServerState {案例连接案例打开案例登录结案案例错误(NSError)}枚举 TransportLayerState {案例断开连接(NSError?)案例连接案例已连接} 如果 ServerState 设置为底层 TL State 不可能的状态,我需要在它们之间切换并返回“false".例如,如果 serverState == .Open &&tlStat
..
在我意识到语句需要保持不变之前,我想在 switch 语句中使用宏函数.示例(不编译): #define BAND_FIELD1(B) (10 * B + 1)...#define BAND_FIELD7(B) (10 * B + 7)int B = myField % 10;开关(myField){案例 BAND_FIELD1(B):变量1[B] = 123;休息;案例 BAND_FIELD7
..
编译器肯定知道它是 switch 语句的最后一个标签吗? 解决方案 在 switch 的最后一个 case 语句之后休息一下是好的 防御性编程.如果将来可能在下面添加另一个 case 语句,它会消除上述案例中程序流程失败的风险.
..
在某些情况下 switch(case) 是一个很好的设计选择(除了简单性)而不是策略或类似模式...... 解决方案 在测试原语的值时使用开关.(即整数或字符). 在不同的类型之间进行选择时使用多态性. 例子:测试用户输入的字符是否是“a"、“b"或“c"之一是开关的工作. 测试你正在处理的对象是狗还是猫是多态调度的工作. 在许多语言中,如果您有更复杂的值,您可能无
..
..
我刚刚开始学习 C#,但我已经陷入了一些非常基础的问题. 对于我的第一个“应用程序",我想我会选择一些简单的东西,所以我决定使用 BMI 计算器. BMI 被计算为十进制类型,我现在尝试在 switch 语句中使用它,但显然十进制不能在 switch 中使用? C# 解决方案是什么: 十进制 bmi = calculate_bmi(h, w);开关 (bmi) {案例 解决
..
我对这件事很好奇...参见示例: switch(x){案例(一):{//做东西}休息;案例(b)://做东西休息;} 我一生都像案例 b 那样做,但是由于 C# 允许我使用它,而 Visual Studio 允许我折叠那个东西,我很好奇 - 案例 a(带大括号)之间的真正区别是什么和案例b? 解决方案 大括号 {} 用于定义一组操作的范围.奇怪的是,以下将编译和工作: private
..
我有一个 C#/Winforms 应用程序,它允许用户将对象放置在网格上以创建游戏关卡.它有几个用于放置瓷砖/灯/门/实体等的工具.目前我只使用一个枚举来存储当前选择的工具,并有一个 switch 语句来运行每个工具代码.随着我向应用程序添加更多工具,它开始变得像意大利面条一样,有很多重复的代码. 这是我的编辑器类中鼠标按下功能的简化版本: public void OnEditorVie
..
我想打开给定对象的类以便对其进行编码. (defn encoded-msg-for [msg](案例(类味精)java.lang.Double (encode-double msg)java.lang.String (encode-str msg)java.lang.Long (encode-int msg)java.lang.Boolean (encode-bool msg)clojure.l
..
在 C# 中,switch 语句不允许 case 跨越值的范围.我不喜欢为此使用 if-else 循环的想法,那么还有其他方法可以检查 C# 中的数字范围吗? 解决方案 可以使用一个HashTable分别Dictionary来创建Condition =>的映射;动作. 例子: 类程序{静态无效主要(){var myNum = 12;var case = new Dictionary
..
在 Java 7 中,string 对象可以在 switch 语句的表达式中.有人可以从 官方文档? Java 编译器从使用 String 对象的 switch 语句生成的字节码通常比从链式 if-then-else 语句生成的字节码效率更高. 解决方案 Java代码 有两个版本的类,例如 使用 if-then-else: 公共类 IfThenElseClass {公共
..
我进退两难了.哪个最好用,为什么.. switch 或 if? 开关 ($x){情况1://mysql查询//回显某些东西休息;案例2://mysql查询//回显某些东西休息;} ... if ($x == 1) {//mysql查询//回显某些东西}如果 ($x == 2) {//mysql查询//回显某些东西} 解决方案 它们有不同的含义. 第一个例子会在条件满足时停止.
..
我知道返回值的方法或属性匹配的 C# 8 switch 表达式 语法.但是如果我们只需要打开一个字符串值并执行一个什么都不返回的方法(没有返回类型/void),那么我们该怎么做呢?我正在考虑某种形式的 Func 但不确定确切的语法.我知道我们可以使用常规 case 语句以旧方式做到这一点,但试图看看我们是否可以使用新语法实现同样的效果. 这是问题的例子 开关(字符串值){案例“添加":添加
..
我有 4 个按钮调用一个功能.根据按下的按钮,我需要在按下后调用的函数内隐藏按钮.我不知道按下了哪个按钮,所以我尝试为 4 个按钮中的每一个分配标签,以通过标签识别它们并使用开关 我试过了 切换 sender.tag {情况1:self.button1.hidden = true案例2:self.button2.hidden = true案例3:self.button3.hidden =
..