当前位置: 首页 > 知识库问答 >
问题:

Switch语句不接受String变量

邬弘化
2023-03-14

有人能告诉我为什么switch语句不能识别gat字符串变量吗。IDE告诉我原语是必需的(int,char,short…),但它找到了一条线。

String gat = temp[i];

switch (gat) {
    case "a":
        output[i] = 12 * k;
        break;
    case "b":
        output[i] = 23 * k;
        break;
    case "c":
        output[i] = 34 * k;
        break;
}

共有2个答案

傅穆冉
2023-03-14

如果您使用的是NetBeans,请确保您拥有最新的JDK版本。如果您使用的是Eclipse,请拥有最新的JDK版本,并将Java设置中编译器的合规性级别设置为1.7。

夏宏旷
2023-03-14

您的项目符合性级别设置为Java 6或更早版本,您不能在Java 7之前使用String作为案例标签。但是,对于你的问题,你可以使用charAt(0)

String gat=temp[i];
switch (gat.charAt(0))
{
case 'a':
    output[i] = 12 * k;
    break;
case 'b':
    output[i] = 23 * k;
    break;
case 'c':
    output[i] = 34 * k;
    break;
}
 类似资料:
  • switch 语句可以替代多个 if 判断。 switch 语句为多分支选择的情况提供了一个更具描述性的方式。 语法 switch 语句有至少一个 case 代码块和一个可选的 default 代码块。 就像这样: switch(x) { case 'value1': // if (x === 'value1') ... [break] case 'value2':

  •  使用 switch 语句可以更简洁地实现 if ~ else if 的结构。格式如下。 switch(base_expression) { casecondition_expression1: casecondition_expression2: : : default: : : }  写在 base_expression 位置的表达式会在刚开始时被求值。switch 后面的语句块中的 case

  • 问题内容: 我只是想知道为什么Java 7 语句不支持大小写而是抛出?请参见下面的注释行(示例摘自上的Java教程文章): 这样可以避免每次使用前都进行空检查的条件。 问题答案: 正如damryfbfnetsi 在评论中指出的那样,JLS§14.11具有以下注释: 禁止将其用作开关标签,以防止他人编写永远无法执行的代码。如果表达式是引用类型,即装箱的原始类型或枚举类型,则如果表达式在运行时求值为,

  • 本文向大家介绍Java switch 语句如何使用 String 参数,包括了Java switch 语句如何使用 String 参数的使用技巧和注意事项,需要的朋友参考一下 问题 当我尝试在 switch 语句使用 String 参数时(注意ctrType为字符串) 提示如下错误: 意思是说,我的 jre 本版本太低,不支持。据查 在 Java 7之前,switch 只能支持 byte、shor

  • C# 中的 switch 语句有些类似于《 if else if 语句》,都可以根据表达式执行某个的语句块,其语法格式如下: switch(表达式){     case value1:     //表达式的值为 value1 时,要执行的代码         break;     case value2:     //表达式的值为 value2 时,要执行的代码         break;   

  • 当条件判断分支太多的时候,我们会使用switch语句来优化逻辑。 package main import "fmt" import "time" func main() { // 基础的switch用法 i := 2 fmt.Print("write ", i, " as ") switch i { case 1: fmt.Println("