Tag: switch statement

切换if-else语句的优点

使用switch语句的最佳做法是使用30个unsigned枚举的if语句,其中大约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 : // intentional fall-through case […]

Java:在子类下使用带有枚举的switch语句

首先我要说的是,我更熟悉C#中的枚举,看起来像java中的枚举相当混乱。 正如你所看到的,我试图在下一个例子中使用switch语句@enums,但是无论我在做什么,我都会得到一个错误。 我收到的错误是: 合格的案例标签SomeClass.AnotherClass.MyEnum.VALUE_A必须replace为不合格的枚举常量VALUE_A 事情是我很理解错误,但我不能只写VALUE_A,因为枚举位于另一个子类。 有没有办法解决这个问题? 为什么它发生在Java? //Main Class public class SomeClass { //Sub-Class public static class AnotherClass { public enum MyEnum { VALUE_A, VALUE_B } public MyEnum myEnum; } public void someMethod() { MyEnum enumExample //… switch (enumExample) { case AnotherClass.MyEnum.VALUE_A: { <– error on this line //.. break; } } } }

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]; }

对一个开关case语句使用两个值

在我的代码中,程序根据用户input的文本执行某些操作。 我的代码如下所示: switch (name) { case text1: { //blah break; } case text2: { //blah break; } case text3: { //blah break; } case text4: { //blah break; } 但是,案例text1和text4的代码是相同的。 因此,我想知道是否可以实现类似的东西 case text1||text4: { //blah break; } 我知道|| 运算符将不会在case语句中工作,但有什么类似的我可以使用。

切换语句应该总是包含一个默认的子句?

在我的第一个代码评论之一(后来),我被告知,在所有switch语句中包含default子句是一个好习惯。 我最近记得这个build议,但不记得理由是什么。 我现在听起来很奇怪。 总是包含默认语句是否有明智的理由? 这个语言是依赖的吗? 我不记得我当时使用的语言 – 也许这适用于某些语言,而不适用于其他语言?

什么是case / switch语句的Python等价物?

我想知道,是否有一个与案例语句相当的Python,例如VB.net或C#上的示例?

我可以使用两个variables的case / switch语句吗?

当谈到JavaScript时,我是一个新手,我的理解是使用一个SWITCH / CASE语句比一大堆IF语句快。 但是,我想使用两个variables的SWITCH / CASE语句。 我的networking应用程序有两个滑块,其中每个都有五个状态。 我想要的行为是基于这两个variables的状态。 显然这是很多IF / THEN陈述的一大堆。 我想过的一种方法是将两个variables连成一个,然后我可以切换/ CASE。 使用两个variables来实现SWITCH / CASE有没有更好的方法? 谢谢 !

Java开关语句有多种情况

试图找出如何使用Java switch语句的多个情况。 以下是我想要做的一个例子: switch (variable) { case 5..100: doSomething(); break; } 与必须这样做: switch (variable) { case 5: case 6: etc. case 100: doSomething(); break; } 任何想法,如果这可能,或者一个好的select是什么?

如何摆脱开关内的循环?

我正在写一些看起来像这样的代码: while(true) { switch(msg->state) { case MSGTYPE: // … break; // … more stuff … case DONE: break; // **HERE, I want to break out of the loop itself** } } 有没有直接的方法来做到这一点? 我知道我可以使用一个标志,并通过在切换之后放置一个条件中断来从循环中断开。 我只想知道C ++是否已经有一些构造。

在Bash中使用大小写范围的数字

我正在尝试在Bash中使用case (在Linux中)。 如果X在460和660之间,则输出X信息。 如果X在661和800之间,则做其他事情。 等等。 现在这是我有: case $MovieRes in [461-660]*) echo "$MovieName,480p" >> moviefinal ;; [661-890]*) echo "$MovieName,720p" >> moviefinal ;; [891-1200]*) echo "$MovieName,1080p" >> moviefinal ;; *) echo "$MovieName,DVD" >> moviefinal ;; esac 但不知何故480p,720p或1080p的很多都是以DVD结尾的。 variables$MovieRes是一个简单的列表,对每一行显示一个介于1和1200之间的数字。根据这个值, case决定应用哪个“case”。 我想知道如何实际使用case来完成这个,因为处理这样​​的范围有点混乱。