相关疑难解决方法(0)

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

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

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

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

.net c# switch-statement

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

为什么switch语句而不是if-else?

我一直想知道这件事已经有一段时间了.我到目前为止还不是一个核心程序员,主要是小型Python脚本,我写了几个分子动力学模拟.对于真正的问题:switch语句有什么意义?你为什么不能只使用if-else语句

感谢您的回答,如果之前有人询问过,请指向我的链接.

编辑

S.Lott指出,这可能是问题If/Else vs. Switch的重复.如果你想关闭然后这样做.我将把它留待进一步讨论.

language-agnostic if-statement switch-statement

60
推荐指数
5
解决办法
8万
查看次数

检测JavaScript的版本

如何检测浏览器支持的JavaScript版本(如果有)?我想检查ECMAScript 3与ECMAScript 5对比ECMAScript 6.

注意:我想避免使用已弃用的language标记.

javascript

39
推荐指数
4
解决办法
5万
查看次数

PHP中的Switch-Case和If-Else有什么区别?

我正在决定是否在我正在编写的PHP网站中使用if/ elsevs switch/ case我想知道使用其中一个是否有任何好处,或者是否存在某个用于使用其中一个而不是另一个的某些实例.

php

15
推荐指数
1
解决办法
6964
查看次数

如何检测ECMAscript版本?

我想看看我在浏览器中使用的ECMAscript版本(例如,chrome 59),因为在处理RegExp的东西时,ECMAscript3和ECMAscript5之间存在一些差异.
我已经找到了相关的相关信息,但我找不到有关如何检测ECMAscript版本的具体答案.
提前致谢.

javascript google-chrome ecmascript-5

11
推荐指数
4
解决办法
7376
查看次数

C#Switch语句:更高效不使用默认值?

我在visual studio中创建了一个C#方法,它只包含一个switch语句,每个case返回一个值.根据个人习惯,我提出了类似于以下代码的内容:

private string SwitchMethod(int num)
    {
        switch (num)
        {
            case 0:
                return "result 1";
            case 1:
                return "result 2";
            case 2:
                return "result 3";
        }
        return "no result";
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是:哪个代码会有更好的性能?上面或下面的代码,或者是相同的?为什么?

我会假设因为编译器优化......它们可能只是相同......但我真的不知道.

private string SwitchMethod(int num)
    {
        switch (num)
        {
            case 0:
                return "result 1";
            case 1:
                return "result 2";
            case 2:
                return "result 3";
            default:
                return "no result";
        }
    }
Run Code Online (Sandbox Code Playgroud)

修订:看起来我应该更具体一点:编译时......一个或另一个会生成效率较低的代码吗?

我意识到性能上的差异可能微不足道......我真的很好奇.

c# performance switch-statement

9
推荐指数
1
解决办法
2538
查看次数

for-loop/switch-statement的性能优化

请帮我确定以下哪些是更优化的代码?

for(int i=0;i<count;i++)
{
    switch(way)
    {
        case 1:
            doWork1(i);
            break;
        case 2:
            doWork2(i);
            break;
        case 3:
            doWork3(i);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

switch(way)
{
    case 1:
        for(int i=0;i<count;i++)
        {
            doWork1(i);
        }
        break;
    case 2:
        for(int i=0;i<count;i++)
        {
            doWork2(i);
        }
        break;
    case 3:
        for(int i=0;i<count;i++)
        {
            doWork3(i);
        }
        break;
}
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,总是在每次迭代中始终检查开关情况条件的开销.在第二种情况下,开销不存在.我觉得第二种情况要好得多.如果有人有任何其他解决方法,请帮我建议.

c# logic for-loop switch-statement

6
推荐指数
1
解决办法
2069
查看次数

如果阻止vs Switch-Case阻止

通常,使用if块和其他许多ifs与switch case block相比有什么性能差异?某些语言或风格约定更喜欢一个吗?

具体来说,我对Matlab,C和C++很好奇

language-agnostic performance if-statement switch-statement conditional-statements

5
推荐指数
1
解决办法
1234
查看次数

转换是否同样糟糕?

我在StackOverflow上读到了这个

if(someCondition)
{
    someCode();
}
else
{
    alternateCode();
}
Run Code Online (Sandbox Code Playgroud)

由于易受分支错误预测的影响,效率可能很低(例如,请参阅此问题).

所以是一个switch构造,例如,

switch (someCondition)
{
    case (someCase):
        something();
        break;
    case (otherCase):
        someOtherInstructions();
        break;
    default:
        defaultAction();
        break;
}
Run Code Online (Sandbox Code Playgroud)

在这方面有什么不同(除了我允许三种可能性的事实)?

language-agnostic optimization performance compiler-optimization branch-prediction

5
推荐指数
1
解决办法
240
查看次数

切换与If-Else性能

我有以下代码If块,该代码块是我正在重写的登录脚本中的代码块:

If ($distinguishedname -match 'Joe Bloggs') {
    Map-Drive 'X' "\\path\to\drive"
}
If ($distinguishedname -match 'Steve Bloggs') {
    Map-Drive 'X' "\\path\to\drive"
}
If ($distinguishedname -match 'Joe Jobs') {
    Map-Drive 'X' "\\path\to\drive"
}
Run Code Online (Sandbox Code Playgroud)

显然,它需要重新编写为一条If/Else语句(因为每个用户只有一个名称!)但是,我更喜欢以下switch -Regex方法的外观:

switch -Regex ($distinguishedname) {
    'Joe Bloggs' {Map-Drive 'X' "\\path\to\drive"; break}
    'Steve Bloggs' {Map-Drive 'X' "\\path\to\drive"; break}
    'Joe Jobs' {Map-Drive 'X' "\\path\to\drive"; break}
}
Run Code Online (Sandbox Code Playgroud)

我的问题是-以这种方式使用开关会对该功能的性能产生影响吗?它必须比上面的(if/if/if)更好,因为不是每次都评估每种可能性,但是会switchifelse/ifelse/else?更快。

powershell performance if-statement switch-statement

3
推荐指数
1
解决办法
4417
查看次数

"if"语句的影响(表现明智)是什么?

我的好友说,为了效率,他试图用尽可能少的if/else语句进行编程.当我问他为什么说如果/其他人占用该计划资源的一个重要部分时,他就试图远离他们.

他是对的吗?有没有更好的方法来执行if/else样式代码而不实际使用该结构?开关/箱体结构是否更好?

编辑:他不是指一种特定的语言,而是更多的一般做法.以及UNIX/Linux和Windows平台.

performance programming-languages

1
推荐指数
2
解决办法
1258
查看次数