标签: switch-statement

在C#中使用if/else和switch-case之间是否有任何显着差异?

在C#中使用switch语句与使用语句的好处/缺点是什么?if/else我无法想象除了你的代码外观之外还有其他重大差异.

是否有任何理由导致生成的IL或相关的运行时性能完全不同?

相关:什么是更快,打开字符串或elseif类型?

.net c# switch-statement

209
推荐指数
8
解决办法
7万
查看次数

为什么switch语句不能应用于字符串?

编译以下代码并得到错误type illegal.

int main()
{
    // Compilation error - switch expression of type illegal
    switch(std::string("raj"))
    {
    case"sda":
    }
}
Run Code Online (Sandbox Code Playgroud)

你不能在任何一个switch或中使用字符串case.为什么?是否有任何解决方案可以很好地支持类似于切换字符串的逻辑?

c++ string switch-statement

208
推荐指数
10
解决办法
33万
查看次数

在switch-case中有效但无价值的语法?

通过一个小错字,我意外地发现了这个结构:

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;
}
Run Code Online (Sandbox Code Playgroud)

似乎声明printf的顶部switch是有效的,但也完全无法访问.

我得到了一个干净的编译,甚至没有关于无法访问的代码的警告,但这似乎毫无意义.

编译器是否应将此标记为无法访问的代码?
这有什么用途吗?

c switch-statement language-lawyer

206
推荐指数
8
解决办法
1万
查看次数

如何在switch中使用null

Integer i = ...

switch (i){
    case null:
        doSomething0();
        break;    
    }
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我不能在switch case语句中使用null.我怎么能这样做?我不能使用default因为那时我想做别的事情.

java switch-statement

191
推荐指数
7
解决办法
16万
查看次数

在JavaScript中,返回switch语句被认为是比使用break更好的做法吗?

选项1 - 使用return返回:

function myFunction(opt) 
{
    switch (opt) 
    {
        case 1: return "One";
        case 2: return "Two";
        case 3: return "Three";

        default: return "";
    }    
}
Run Code Online (Sandbox Code Playgroud)

选项2 - 使用break切换:

function myFunction(opt) 
{
    var retVal = "";

    switch (opt) 
    {
        case 1: 
            retVal = "One";
            break;

        case 2: 
            retVal = "Two";
            break;

        case 3: 
            retVal = "Three";
            break;
    }

    return retVal;
}
Run Code Online (Sandbox Code Playgroud)

我知道两者都有效,但又是一种最佳实践吗?我倾向于喜欢选项1 - 使用返回最佳切换,因为它更干净,更简单.


这是我使用@ ic3b3rg评论中提到的技术的具体例子的jsFiddle:

var SFAIC = {};

SFAIC.common = 
{
    masterPages: 
    {
        cs: "CS_",
        cp: "CP_" …
Run Code Online (Sandbox Code Playgroud)

javascript return break switch-statement

188
推荐指数
3
解决办法
12万
查看次数

Swift:在switch语句中测试类类型

在Swift中,您可以使用"is"检查对象的类类型.如何将其合并到"开关"块中?

我认为这是不可能的,所以我想知道最好的方法是什么.

TIA,彼得.

class switch-statement swift

185
推荐指数
4
解决办法
6万
查看次数

在JavaScript中切换字符串匹配的语句

如何为以下条件写一个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 = {
        "base_url" : "http://xxx.dev.yyy.com/xxx/"
    };
}
Run Code Online (Sandbox Code Playgroud)

javascript regex switch-statement

179
推荐指数
5
解决办法
26万
查看次数

切换机箱有穿透?

我正在寻找switch语句的正确语法与Bash中的初级案例(理想情况下不区分大小写).在PHP中我会编程它像:

switch($c) {
    case 1:
        do_this();
        break;
     case 2:
     case 3:
        do_what_you_are_supposed_to_do();
        break;
     default:
        do_nothing(); 
}
Run Code Online (Sandbox Code Playgroud)

我希望在Bash中也一样:

case "$C" in
    "1")
        do_this()
        ;;
    "2")
    "3")
        do_what_you_are_supposed_to_do()
        ;;
    *)
        do_nothing();
        ;; 
esac
Run Code Online (Sandbox Code Playgroud)

这在某种程度上是行不通的:do_what_you_are_supposed_to_do()当$ C为2或3时,应该触发函数.

bash switch-statement

176
推荐指数
5
解决办法
15万
查看次数

Switch语句:必须默认为最后一种情况?

请考虑以下switch声明:

switch( value )
{
  case 1:
    return 1;
  default:
    value++;
    // fall-through
  case 2:
    return value * 2;
}
Run Code Online (Sandbox Code Playgroud)

此代码编译,但它对C90/C99有效(=已定义的行为)?我从未见过默认情况不是最后一种情况的代码.

编辑:
正如Jon CageKillianDS所写:这是非常丑陋和令人困惑的代码,我很清楚它.我只对一般语法(它定义了吗?)和预期输出感兴趣.

c switch-statement

168
推荐指数
8
解决办法
10万
查看次数

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];
} 
Run Code Online (Sandbox Code Playgroud)

objective-c switch-statement

164
推荐指数
7
解决办法
9万
查看次数

标签 统计

switch-statement ×10

c ×2

javascript ×2

.net ×1

bash ×1

break ×1

c# ×1

c++ ×1

class ×1

java ×1

language-lawyer ×1

objective-c ×1

regex ×1

return ×1

string ×1

swift ×1