switch语句中case后面的东西是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch语句中case后面的东西是啥意思?相关的知识,希望对你有一定的参考价值。

参考技术A

例:用switch来判断用户输入的成绩应该属于哪个范围。60一下不及格,60-70及格,70-80良好,80-90优秀,90以上学霸


<script type="text/javascript">

    var score=parseInt(prompt('请输入你的成绩'));

    switch(true)

        case score>=0&&score<60:

            alert('不及格');

            break;

        case score>60&&score<=70:

            alert('及格');

            break;

        case score>70&&score<=80:

            alert('良好');

            break

        case score>80&&score<=90:

            alert('优秀');

            break;    

        case score>90&&score<=100:

            alert('优秀');

            break;    

        default:

            alert('输入不合法');

   

    </script>

扩展资料:

代码知识总结:

1.if语句的嵌套要注意大括号的一一对应,实现if--else的正确匹配;

2.switch...case..break语句不要误丢break,case后面跟的是变量,且case后面要加空格;

3.运算符要注意优先级;

4.缩进格式并不能暗示else的匹配;

5.在if和else后面总要用到,即使只有一条语句。

参考资料:百度百科-switch

case/switch 语句的 Python 等效项是啥? [复制]

【中文标题】case/switch 语句的 Python 等效项是啥? [复制]【英文标题】:What is the Python equivalent for a case/switch statement? [duplicate]case/switch 语句的 Python 等效项是什么? [复制] 【发布时间】:2012-07-13 20:31:09 【问题描述】:

是否有 Python 等效的 case 语句,例如 VB.NET 或 C# 中可用的示例?

【问题讨论】:

从 Python 3.10 开始,您可以使用 Python 的 match ... case 语法:PEP 636。 Python 3.10.0 提供了官方的等效语法,使得提交的答案不再是最佳解决方案! 在this SO post 我试图涵盖您可能想知道的所有内容match-case 结构,如果您来自其他语言,则包括常见陷阱。当然,如果您尚未使用 Python 3.10.0,则现有答案适用并且在 2021 年仍然有效。 我会在对这篇文章的回答中写下这个,但不幸的是它不允许提供更多答案。但是有超过一百万的浏览量,我认为这个问题至少需要重定向到一个更现代的答案——尤其是当 3.10.0 变得稳定并且 Python 初学者遇到这篇文章时。 【参考方案1】:

Python 3.10 及以上版本

在 Python 3.10 中,他们引入了模式匹配

来自Python documentation的示例:

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the internet"

在 Python 3.10 之前

虽然official documentation 很高兴不提供开关,但我看到了solution using dictionaries。

例如:

# define the function blocks
def zero():
    print "You typed zero.\n"

def sqr():
    print "n is a perfect square\n"

def even():
    print "n is an even number\n"

def prime():
    print "n is a prime number\n"

# map the inputs to the function blocks
options = 0 : zero,
           1 : sqr,
           4 : sqr,
           9 : sqr,
           2 : even,
           3 : prime,
           5 : prime,
           7 : prime,

然后调用等效的 switch 块:

options[num]()

如果您严重依赖失败,这将开始崩溃。

【讨论】:

字典必须在函数定义之后 关于fall-through,你不能用options.get(num, default)(),还是我误会了? 我想我的意思更多的是标签执行一些代码,然后继续进入另一个标签的块。 @IanMobbs 将代码放在引号中的常量字符串中,然后 eval 几乎是“正确的”。 1) 编辑器不会检查代码的有效性。 2)它没有在编译时针对字节码进行优化。 3)你看不到语法高亮。 4)如果您有多个引号,则很繁琐-确实您的评论需要转义!如果你想要简洁,你可以使用lambda,虽然我认为这被认为是非pythonic。 顺便说一句,2 是质数【参考方案2】:

直接替换为if/elif/else

但是,在许多情况下,在 Python 中可以使用更好的方法。请参阅“Replacements for switch statement in Python?”。

【讨论】:

以上是关于switch语句中case后面的东西是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中 For语句后面的括号里有两个分号是啥意思啊?

C语言中 For语句后面的括号里有两个分号是啥意思啊?

计算机C语言中的关键字:default是啥意思?

c语言中case是啥意思

switch语句后面不加break结果是啥?

c语言switch语句中default是啥意思?