标签: if-statement

案例与其他案例如果:哪个更有效率?

可能重复:
"else if"比"switch()case"快吗?
Java中if/else与switch的相对性能是什么?

我已经在运行中进行编码....当调试器逐步执行case语句时,它会立即跳转到与条件匹配的项,但是当使用if/else指定相同的逻辑时,它会逐步执行每个if语句直到它找到胜利者.case语句是否更有效,或者我的调试器只是优化了一步?(不要担心语法/错误,我在SO中键入它,不知道它是否会编译,它的原理我之后,我不想做它们作为int因为我依稀记得一些关于使用带有整数的偏移的情况)我使用C#,但我对编程语言的一般答案感兴趣.

switch(myObject.GetType()){

    case typeof(Car):
        //do something
        break;

    case typeof(Bike):
        //do something
        break;

    case typeof(Unicycle):
        //do something
        break;

    case default:
        break;
}
Run Code Online (Sandbox Code Playgroud)

VS

   Type myType = myObject.GetType();

   if (myType == typeof(Car)){
            //do something
   }

   else if (myType == typeof(Bike)){
            //do something
   }

   else if (myType == typeof(Unicycle)){
            //do something
   }
   else{

   }
Run Code Online (Sandbox Code Playgroud)

performance if-statement switch-statement

59
推荐指数
3
解决办法
17万
查看次数

if语句后面的变量声明

另一个论坛上出现了一个问题,我知道如何修复它,但它揭示了我特有的编译器功能.该人收到错误"嵌入式语句不能是声明或标记语句",因为他们在没有括号的if语句后声明了变量.这不是他们的意图,但是他们在if语句之后立即注释掉了代码行,这使得变量声明成为执行的事实上的代码行.无论如何,这就是背景,这让我想到了这一点.

以下代码是非法的

if (true)
    int i = 7;
Run Code Online (Sandbox Code Playgroud)

但是,如果你用括号括起来,那一切都是合法的.

if (true)
{
    int i = 7;
}
Run Code Online (Sandbox Code Playgroud)

这两段代码都没用.然而第二个是好的.这种行为的具体解释是什么?

c# if-statement

59
推荐指数
3
解决办法
4万
查看次数

在Bash if语句中匹配正则表达式

我在这做错了什么?

尝试匹配包含空格,小写,大写或数字的任何字符串.特殊字符也会很好,但我认为这需要转义某些字符.

TEST="THIS is a TEST title with some numbers 12345 and special char *&^%$#"

if [[ "$TEST" =~ [^a-zA-Z0-9\ ] ]]; then BLAH; fi
Run Code Online (Sandbox Code Playgroud)

这显然只测试上,下,数字和空格.虽然不起作用.

*更新*

我想我应该更具体一点.这是实际的实际代码行.

if [[ "$TITLE" =~ [^a-zA-Z0-9\ ] ]]; then RETURN="FAIL" && ERROR="ERROR: Title can only contain upper and lowercase letters, numbers, and spaces!"; fi
Run Code Online (Sandbox Code Playgroud)

*更新*

./anm.sh: line 265: syntax error in conditional expression
./anm.sh: line 265: syntax error near `&*#]'
./anm.sh: line 265: `  if [[ ! "$TITLE" =~ [a-zA-Z0-9 $%^\&*#] ]]; then …
Run Code Online (Sandbox Code Playgroud)

regex bash if-statement

59
推荐指数
4
解决办法
17万
查看次数

Python:检查对象是否是序列

在python中有一个简单的方法来判断某些东西是不是一个序列?我试着这么做: if x is not sequence但是python并不喜欢这样

python if-statement sequences sequence

58
推荐指数
6
解决办法
3万
查看次数

何时在Bash if语句中需要方括号?

通常,我在if语句中使用方括号:

if [ "$name" = 'Bob' ]; then ...
Run Code Online (Sandbox Code Playgroud)

但是,当我检查是否grep成功时,我不使用方括号:

if grep -q "$text" $file ; then ...
Run Code Online (Sandbox Code Playgroud)

声明中何时需要方括号if

bash if-statement square-bracket

58
推荐指数
3
解决办法
2万
查看次数

为什么在Bash中'['之前'''之后会有一个空格?

我试图编写一个使用if语句的Bash脚本.

if  [$CHOICE -eq 1];
Run Code Online (Sandbox Code Playgroud)

剧本是给我的错误,直到我后得到的空间[和之前]如下所示:

if  [ $CHOICE -eq 1 ];
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么方括号周围的空间在Bash中如此重要?

syntax bash if-statement

58
推荐指数
3
解决办法
6692
查看次数

带有括号和方括号的IF语句之间的Bash差异

在学习,我会看到四种使用if语句的方式:

  • 单括号 - (...)
  • 双括号 - ((...))
  • 单方支架 - [...]
  • 双方括号 - [[...]]

bash中的Parenthesis和Square Brackets有什么区别.

bash if-statement

58
推荐指数
2
解决办法
2万
查看次数

为什么Java编译器不会为无法访问的语句生成无法访问的语句错误?

如果我尝试编译

for(;;)
{

}
System.out.println("End");
Run Code Online (Sandbox Code Playgroud)

Java编译器产生错误说Unreachable statement.但是,如果我添加另一个" 无法访问 "(根据我)break声明并使其成为:

for(;;)
{
    if(false) break;
}
System.out.println("End");
Run Code Online (Sandbox Code Playgroud)

它汇编.为什么它不会产生错误?

java if-statement unreachable-code unreachable-statement

58
推荐指数
3
解决办法
2053
查看次数

在条件中声明变量并且没有花括号时编译器错误

为什么第一次if编译好,第二次失败?

if(proceed) {int i;} // This compiles fine.
if(proceed) int i;// This gives an error. (Syntax error on token ")", { expected after this token)
Run Code Online (Sandbox Code Playgroud)

java if-statement declaration block

57
推荐指数
3
解决办法
3984
查看次数

MySQL:仅在满足条件时更新字段

是否可以在MySQL中执行UPDATE查询,只有在满足某些条件时才更新字段值?像这样的东西:

UPDATE test
SET
    CASE
        WHEN true
        THEN field = 1
    END
WHERE id = 123
Run Code Online (Sandbox Code Playgroud)

换一种说法:

UPDATE test
SET
    something = 1,        /*field that always gets updated*/
    CASE
        WHEN true
        THEN field = 1    /*field that should only get updated when condition is met*/
    END
WHERE id = 123
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

mysql if-statement sql-update

57
推荐指数
3
解决办法
11万
查看次数