首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当对备选方案列表使用字符串变量时,Switch语句不会编译

Switch语句是一种条件控制语句,用于根据不同的条件执行不同的代码块。在大多数编程语言中,Switch语句通常用于对整数或枚举类型的变量进行条件判断。然而,对于字符串类型的变量,Switch语句的行为可能会有所不同。

在某些编程语言中,Switch语句可以接受字符串类型的变量作为条件,但在其他一些编程语言中,Switch语句只能接受整数或枚举类型的变量。如果在这些语言中尝试使用字符串变量作为Switch语句的条件,编译器将会报错。

对于备选方案列表使用字符串变量的情况,可以考虑使用其他的条件控制结构,如if-else语句或者字典(Map)来实现相同的功能。这些结构可以根据字符串变量的值执行相应的代码块,实现条件判断的目的。

总结:

当对备选方案列表使用字符串变量时,Switch语句不会编译。可以考虑使用其他的条件控制结构来实现相同的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

优化查询性能(三)

但是,从管理门户或SQL Shell调用Show Plan,Show Plan使用运行时模式。...使用EXPLAIN()方法显示显示计划,或者使用SQL运行时统计信息或备用显示计划工具显示显示计划不会执行这些修改。 查询计划显示将用于执行查询的计划。...为用户定义的(“外部”)函数指定了两个或多个前置美元符号而没有指定正确的语法,也会出现这种情况。 交替显示计划 可以使用管理门户或Explain()方法显示查询的替代执行计划。...eos 可选-语句末尾分隔符,用于分隔Infile列表中的各个缓存查询。指定为带引号的字符串。默认值为“GO”。如果此EOS字符串与缓存的查询分隔符不匹配,则不会生成输出文件。...schemapath 可选-以逗号分隔的方案列表,用于为未限定的表名、视图名或存储过程名指定方案搜索路径。可以包括DEFAULT_SCHEMA,这是当前系统范围内的默认架构。

1.2K20

27 个问题,告诉你Python为什么这么设计

可以将Python编译为机器码,C或其他语言吗? Python如何管理内存? 为什么CPython不使用更传统的垃圾回收方案? CPython退出为什么不释放所有内存?...从Python 1.6开始,字符串变得更像其他标准类型,添加方法,这些方法提供的功能与始终使用String模块的函数提供的功能相同。...该实现使用其他对象的引用的连续数组,并在列表头结构中保留指向该数组和数组长度的指针。 这使得索引列表 a[i] 的操作成本与列表的大小或索引的值无关。 添加或插入项,将调整引用数组的大小。...为了提醒您这一事实,它不会返回已排序的列表。这样,您需要排序的副本,但也需要保留未排序的版本,就不会意外地覆盖列表。 如果要返回新列表,请使用内置 sorted() 函数。...反过来,允许通过使用引号字符转义反斜杠转义字符串r-string用于它们的预期目的,这些规则工作的很好。

6.7K11
  • Python 之父的解析器系列之七:PEG 解析器的元语法

    最初,alts 只是一个包含字符串列表列表(外层列表代表备选项,内层列表代表备选项的条目),但为了添加动作,我更改了一些内容,备选项由具有 items 和 action 属性的 Alt 对象来表示。...接下来是 items 规则,它必须返回一个字符串列表: items: item items { [item] + items } | item { [item] } 我在这里使用右递归规则,所以我们不依赖于第...如果需要多个 import,可以在变量声明中使用三引号字符串,例如: @subheader """ from token import OP from grammar import Rule, Alt...使用这个小调整,出现花括号,我们可以使 OP 上的匹配失效,它可以通过 stuff 和 action 进行匹配。...最后让我们元语法进行改进!我想做的事情纯粹是美容性的:我不喜欢被迫将所有备选项放在同一行上。

    1.4K60

    Java入门基础知识点总结(详细篇)

    (单词) 特点:关键字中所有字母都为小写 1.3 标识符 1.3.1 标识符概念 Java 各种变量、方法和类等要素命名使用的字符序列称为标识符 凡是自己可以起名字的地方都叫标识符。...1.4 变量 定义格式:数据类型 变量名 需要注意的点: 变量的作用域:一{ }之间有效 。 使用前需要初始化值。...②byte,short,char之间不会相互转换,他们三者在计算首先转换为int类型。 ③把任何基本类型的值和字符串值进行连接运算(+),基本类型的值将自动转化为字符串类型。...一个方法执行到一个return语句,这个方法将被结束。 switch和if语句的对比: 如果判断的具体数值不多,而且符合byte、 short 、int、 char这四种类型。...虽然两个语句都可以使用,建议使用switch语句。因为效率稍高。 其他情况:区间判断,结果为boolean类型判断,使用if,if的使用范围更广。

    96210

    go 流程控制之switch 语句介绍

    在带有表达式列表的 case 语句中,Go 会从左到右,列表中的表达式进行求值,比如示例中的 case2_1 函数就执行于 case2_2 函数之前。...这里要注意一点,即便后面的 case 表达式求值后也能与 switch 表达式匹配上,Go 也不会继续去这些表达式进行求值了,这是switch语句的工作原理。...而且, switch 表达式的类型为布尔类型,如果求值结果始终为 true,那么我们甚至可以省略 switch 后面的表达式,比如下面例子: // 带有initStmt语句switch语句 switch...3.3 case 语句支持表达式列表 在Go的switch语句中,case语句支持表达式列表,一个分支可以有多个值,多个case值中间使用英文逗号分隔。...{ case value1: // expression等于value1执行这里的代码 case value2: // expression等于value2执行这里的代码 default

    30930

    Python官方二十七问,你知道个啥?

    从 Python 1.6 开始,字符串变得更像其他标准类型,添加方法,这些方法提供的功能与始终使用 String 模块的函数提供的功能相同。...该实现使用其他对象的引用的连续数组,并在列表头结构中保留指向该数组和数组长度的指针。 这使得索引列表 a[i] 的操作成本与列表的大小或索引的值无关。 添加或插入项,将调整引用数组的大小。...为了提醒您这一事实,它不会返回已排序的列表。这样,您需要排序的副本,但也需要保留未排序的版本,就不会意外地覆盖列表。 如果要返回新列表,请使用内置 sorted() 函数。...反过来,允许通过使用引号字符转义反斜杠转义字符串 r-string 用于它们的预期目的,这些规则工作的很好。...其他语言,如 ObjectPascal、Delphi 和 C++ 使用静态类型,因此可以毫不含糊地知道分配给什么成员。这是静态类型的要点 -- 编译器 总是 在编译知道每个变量的作用域。

    2.5K20

    27 个问题,告诉你Python为什么这么设计?

    从Python 1.6开始,字符串变得更像其他标准类型,添加方法,这些方法提供的功能与始终使用String模块的函数提供的功能相同。...该实现使用其他对象的引用的连续数组,并在列表头结构中保留指向该数组和数组长度的指针。 这使得索引列表 a[i] 的操作成本与列表的大小或索引的值无关。 添加或插入项,将调整引用数组的大小。...为了提醒您这一事实,它不会返回已排序的列表。这样,您需要排序的副本,但也需要保留未排序的版本,就不会意外地覆盖列表。 如果要返回新列表,请使用内置 sorted() 函数。...反过来,允许通过使用引号字符转义反斜杠转义字符串r-string用于它们的预期目的,这些规则工作的很好。...其他语言,如ObjectPascal、Delphi和C++ 使用静态类型,因此可以毫不含糊地知道分配给什么成员。这是静态类型的要点 -- 编译器 总是 在编译知道每个变量的作用域。

    3.1K20

    干货 | 27 个问题,告诉你 Python 为什么如此设计?

    从 Python 1.6 开始,字符串变得更像其他标准类型,添加方法,这些方法提供的功能与始终使用 String 模块的函数提供的功能相同。...该实现使用其他对象的引用的连续数组,并在列表头结构中保留指向该数组和数组长度的指针。 这使得索引列表 a[i] 的操作成本与列表的大小或索引的值无关。 添加或插入项,将调整引用数组的大小。...为了提醒您这一事实,它不会返回已排序的列表。这样,您需要排序的副本,但也需要保留未排序的版本,就不会意外地覆盖列表。 如果要返回新列表,请使用内置 sorted() 函数。...反过来,允许通过使用引号字符转义反斜杠转义字符串 r-string 用于它们的预期目的,这些规则工作的很好。...其他语言,如 ObjectPascal、Delphi 和 C++ 使用静态类型,因此可以毫不含糊地知道分配给什么成员。这是静态类型的要点 -- 编译器 总是 在编译知道每个变量的作用域。

    2.6K20

    干货 | 27 个问题,告诉你 Python 为什么如此设计?

    从 Python 1.6 开始,字符串变得更像其他标准类型,添加方法,这些方法提供的功能与始终使用 String 模块的函数提供的功能相同。...该实现使用其他对象的引用的连续数组,并在列表头结构中保留指向该数组和数组长度的指针。 这使得索引列表 a[i] 的操作成本与列表的大小或索引的值无关。 添加或插入项,将调整引用数组的大小。...为了提醒您这一事实,它不会返回已排序的列表。这样,您需要排序的副本,但也需要保留未排序的版本,就不会意外地覆盖列表。 如果要返回新列表,请使用内置 sorted() 函数。...反过来,允许通过使用引号字符转义反斜杠转义字符串 r-string 用于它们的预期目的,这些规则工作的很好。...其他语言,如 ObjectPascal、Delphi 和 C++ 使用静态类型,因此可以毫不含糊地知道分配给什么成员。这是静态类型的要点 -- 编译器 总是 在编译知道每个变量的作用域。

    2.7K10

    Python 核心设计理念27个问题及解答

    从 Python 1.6 开始,字符串变得更像其他标准类型,添加方法,这些方法提供的功能与始终使用 String 模块的函数提供的功能相同。...该实现使用其他对象的引用的连续数组,并在列表头结构中保留指向该数组和数组长度的指针。 这使得索引列表 a[i] 的操作成本与列表的大小或索引的值无关。 添加或插入项,将调整引用数组的大小。...为了提醒您这一事实,它不会返回已排序的列表。这样,您需要排序的副本,但也需要保留未排序的版本,就不会意外地覆盖列表。 如果要返回新列表,请使用内置 sorted() 函数。...反过来,允许通过使用引号字符转义反斜杠转义字符串 r-string 用于它们的预期目的,这些规则工作的很好。...其他语言,如 ObjectPascal、Delphi 和 C++ 使用静态类型,因此可以毫不含糊地知道分配给什么成员。这是静态类型的要点 -- 编译器 总是 在编译知道每个变量的作用域。

    3.3K21

    Java 程序优化:字符串操作、基本运算方法等优化策略

    但是 JVM 会对代码进行彻底的优化,将多个连接操作的字符串编译合成一个单独的长字符串。...以上实例运行结果差异较大的原因是 split 算法每一个字符进行了对比,这样字符串较大,需要把整个字符串读入内存,逐一查找,找到符合条件的字符,这样做较为耗时。...但是 JVM 会对代码进行彻底的优化,将多个连接操作的字符串编译合成一个单独的长字符串。...替换 switch 关键字 switch 语句用于多条件判断,switch 语句的功能类似于 if-else 语句,两者的性能差不多。但是 switch 语句有性能提升空间。...本文是该系列的第一篇文章,主要介绍了字符串对象操作相关、数据定义方面的优化方案、运算逻辑优化及建议,从实际代码演示入手,优化建议及方案进行了验证。

    73630

    2018年百度大神讲解 JAVA基础知识解析(重点)

    str.equals(“”))表达式,str为null,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常...If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长,&还可以用作位运算符,&操作符两边的表达式不是boolean类型,&表示按位与操作,我们通常使用0x0f来与一个整数进行...2、switch语句能否作用在byte上,能否作用在long上,能否作用在String上?...true,这说明javac编译可以对字符串常量直接相加的表达式 进行优化,不必要等到运行期去进行加法运算处理,而是在编译去掉其中的加号,直接将其编译成一个这些常量 相连的结果。...题目中的第一行代码被编译器在编译优化后,相当于直接定义了一个”abcd”的字符串,所以,上面的代码应该只创 建了一个String对象。

    62030

    Go语言核心36讲(Go语言进阶技术十二)--学习笔记

    它们的语法看起来很朴素,但实际上也会有一些使用技巧和注意事项。我在本篇文章中会以一系列面试题为线索,为你讲述它们的用法。 那么,今天的问题是:使用携带range子句的for语句需要注意哪些细节?...更宽泛地讲,只有一个迭代变量的时候,数组、数组的指针、切片和字符串的元素值都是无处安放的,我们只能拿到按照从小到大顺序给出的一个个索引值。 因此,这里的迭代变量i的值会依次是从0到5的整数。...因为,如果答案是否定的,虽然不会造成编译错误,但是后果会更加严重:引发 panic(也就是运行时恐慌)。 问题 2:switch语句它的case表达式有哪些约束?...这条switch语句可以成功通过编译。 不过,这种绕过方式用于类型判断的switch语句(以下简称为类型switch语句)就无效了。...比如,我在讲for语句的时候交代了携带range子句只有一个迭代变量意味着什么。

    41401

    Python 零基础入门

    序列可以看作是其他语言中的 switch 或 case 语句的替代。...for 语句 用于序列(例如字符串、元组或列表)或其他可迭代对象中的元素进行迭代: >>> # Measure some strings: ... words = ['cat', 'window',...循环语句可能带有一个 else 子句;它会在循环遍历完列表 (使用 for) 或是在条件变为假 (使用 while) 的时候被执行,但是不会在循环被 break 语句终止被执行。...语法上需要一个语句,但程序需要什么动作也不做,可以使用它。例如: >>> while True: ......函数体的第一个语句可以(可选的)是字符串文字;这个字符串文字是函数的文档字符串或 docstring 有些工具使用文档字符串自动生成在线或印刷文档,或者让用户以交互式的形式浏览代码 在你编写的代码中包含文档字符串是一种很好的做法

    1K10

    scala 学习笔记

    编译器在编译将自动决定使用原生类型还是装箱类型。 字符串 Scala中的字符串有3种。 分别是普通字符串,它的特性和Java字符串一致。...:两种控制语句,但它的if和match case会有更好的实现。 if Scala支持if语句,其基本使用和Java、Python中的一样。但不同的,它是有返回值的。...unit和unit2变量的类型是Any,这是因为else语句的缺失,Scala编译器就按最大化类型来推导,而Any类型是Scala中的根类型。...但与switch需要使用break明确告知终止之后的判断不同,Scala中的match case是默认break的。只要其中一个case语句匹配,就终止之后的所以比较。...标记了override关键字的方法在编译,若编译器未能在父类中找到可覆写的方法时会报错。

    56120

    Golang 学习笔记-2:控制流

    ", os) } } 如果有可选语句声明, 分号是必要的, 无论后边的可选表达式语句是否出现(如果可选语句没有出现默认为true) 每一个case 语句必须要有一个表达式列表,多个用分号隔开 switch...语句自上而下执行,匹配成功后执行case分支的代码块,执行结束后退出switch switch i { case 0: // 空分支,只有当 i == 0 才会进入分支 相当于 "case 0:...break;" case 1: f() // i == 0 函数不会被调用 } 如果想要在执行完每个分支的代码后还继续执行后续的分支代码,可以使用fallthrough 关键字达到目的 package...LABEL1,执行到该语句的时候,就会跳转到 LABEL1 标签的位置 defer defer 语句会延迟函数的执行直到上层函数返回 延迟调用的参数会立刻生成,但是在上层函数返回前函数都不会被调用...函数返回, 会按照后进先出的顺序调用被延迟的函数调用。

    36910

    Go语言学习笔记一 Golang的安装与基础

    使用VsCode进行Go的编辑需要注意: 环境变量Path中需要写明Go的地址。...(5)Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错 (6)定义的变量或者import的包如果没有使用到,代码不能编译通过。...(7)switch后也可以不带表达式,当做if分支来使用 (8)switch后也可以直接声明/定义一个变量,分号结束,不推荐 (9)switch穿透,利用fallthrough关键字,如果在case语句块后增加...进行遍历,遍历的每个结果的索引值被i接收,每个结果的具体数值被value接收 //遍历字符进行遍历的 } 函数的使用 在Golang中使用函数的基本语法为: func 函数名(形参列表...)(返回值类型列表){ 执行语句..

    70150

    程序员们,再不升级 Java 10 就晚了!

    ▌局部变量类型推断 Java 10 引入了局部变量类型推断的特性。该特性使用var关键字来定义局部变量,并让编译器根据初始化的方式来确定变量类型。...如果你使用过 Java 的 lambda 表达式,那么这个特性你来说并不会太陌生。...使用 var关键字可以帮助你减少一些代码的冗长度,尤其是泛型已经存在于变量初始化或者变量名称中。它容易获得且易于理解,不必依靠 IDE 来告诉你变量的具体类型。...> html> `; 在新的语法中,反引号(`)用作原始字符串符号。...▌switch 表达式 有关 switch 语句的多项改进正在进行,其中就包括了全开模式匹配。我 switch 表达式充满期待。

    56220
    领券