flutter 切换大小写,同一大小写有多个值

gijlo24d  于 2023-04-22  发布在  Flutter
关注(0)|答案(3)|浏览(199)

我想知道在switch / case中设置多个case语句的语法。
例如:

String commentMark(int mark) {
    switch (mark) {
        case 0 : // Enter this block if mark == 0
            return "Well that's bad" ;
        case 1, 2, 3 : // Enter this block if mark == 1 or mark == 2 or mark == 3
            return "Gods what happend" ;
        // etc.
        default :
            return "At least you tried" ;
    }
}

我找不到正确的语法来设置多个大小写(行case 1, 2, 3 :),这在Dart中可能吗?
我在www.example.com文档中没有找到任何信息pub.dev,在dart.dev上也没有。
我试过:
case 1, 2, 3
case (1, 2, 3)
case (1 ; 2 ; 3)
case (1 : 2 : 3)
case 1 : 3
还有更多!

vnzz0bqm

vnzz0bqm1#

继续执行,直到它到达break;。因此,您可以一个接一个地列出案例,以使以下代码在这些案例中的任何一个上执行。

String commentMark(int mark) {
    switch (mark) {
        case 0 : // Enter this block if mark == 0
            return "mark is 0" ;
        case 1:
        case 2:
        case 3: // Enter this block if mark == 1 or mark == 2 or mark == 3
            return "mark is either 1, 2 or 3" ;
        // etc.
        default :
            return "mark is not 0, 1, 2 or 3" ;
    }
}

上面的return语句用于摆脱函数。如果你不想return,你必须在每个块之后使用break;,当然。下面的代码相当于上面的代码。

String commentMark(int mark) {
    String msg;
    switch (mark) {
        case 0 : // Enter this block if mark == 0
            msg = "mark is 0" ;
            break;
        case 1:
        case 2:
        case 3: // Enter this block if mark == 1 or mark == 2 or mark == 3
            msg = "mark is either 1, 2 or 3" ;
            break;
        // etc.
        default:
            msg = "mark is not 0, 1, 2 or 3" ;
            break; // this is a good habit, in case you change default to something else later.
    }
    return msg;
}
1zmg4dgp

1zmg4dgp2#

我们可以在单个开关的情况下使用或操作符来代替多个情况。

switch (date) {
        case 1 | 21 | 31:
            return "st";
        case 2 | 22:
            return "nd";
        case 3 | 23:
            return "rd";
        default:
            return "th";
        }
mwngjboj

mwngjboj3#

如果你想使用多个案例,你应该使用下面的语法:

switch (yourCase) {    
            case 1:
            case 2:
            case 3: 
                  // Enter this block if yourCase == 1 or yourCase == 2 or yourCase == 3
                var msg = "your code to for cases either 1, 2 or 3" ;
                break;
            case 4: 
                  // Enter this block if yourCase == 4
                break;
                  }

相关问题