相关疑难解决方法(0)

为什么我不能在String上使用switch语句?

这个功能是否会被放入以后的Java版本中?

有人可以解释为什么我不能这样做,就像Java的switch声明的技术方式一样吗?

java string switch-statement

982
推荐指数
8
解决办法
73万
查看次数

使用Maven编译JDK12预览功能

使用JDK/12 EarlyAccess Build 10,JEP-325 Switch Expressions已作为JDK中的预览功能集成.表达式的示例代码(如在JEP中一样):

Scanner scanner = new Scanner(System.in);
Day day = Day.valueOf(scanner.next());
switch (day) {
    case MONDAY, TUESDAY -> System.out.println("Back to work.") ;
    case WEDNESDAY -> System.out.println("Wait for the end of week...") ;
    case THURSDAY,FRIDAY -> System.out.println("Plan for the weekend?");
    case SATURDAY, SUNDAY -> System.out.println("Enjoy the holiday!");
}
Run Code Online (Sandbox Code Playgroud)

在哪里Day作为一个枚举

public enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
Run Code Online (Sandbox Code Playgroud)

预览语言和VM特点JEP-12已经阐述了如何功能可以编译和使用运行时期间启用javacjava.

如何使用Maven试用这个功能?

java switch-statement maven java-12 preview-feature

23
推荐指数
3
解决办法
1万
查看次数

为什么在使用 Switch 时需要 Break?

我已经阅读了很多关于 SO 的答案,但似乎无法找到明确的答案,为什么如果在这种情况下省略了 break,则案例“C”将始终被评估为真,而填充的新数组只会“G” ”的。我清楚地明白,最好在这里使用 break,因为我只想评估特定的匹配,而不是为了如果确实省略了 break,为什么最后一种情况总是正确的。

 var dna = "ATTGC";
 var outArr = [];
 dna.split("").forEach(function(e,i){
    switch(e) {
        case "G": outArr[i] = "C"; break;
        case "T": outArr[i] = "A"; break;
        case "A": outArr[i] = "T"; break;
        case "C": outArr[i] = "G"; break;
    }
    console.log(outArr);
  })
Run Code Online (Sandbox Code Playgroud)

javascript switch-statement

5
推荐指数
2
解决办法
3363
查看次数

为什么Java中的"切换"依赖于"中断"?

class switch1
{
    public static void main(String args[])
    {
        int a = 10;
        switch(a)
        {
            default: System.out.println("Default");
            case -1: System.out.println("-1");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这个程序将执行"default"和"case -1"语句,因为在匹配条件之后没有指定break(在这种情况下是在"default"之后).

但我不明白的是

a)为什么break需要在switch声明中?

b)为什么它甚至执行无效匹配条件的语句(即执行"case -1"))如果它只是匹配的话?

java

3
推荐指数
1
解决办法
1371
查看次数

为什么在java中"切换"确实检查了比需要更多的情况?

我已经在stackoverflow中搜索了有关问题的原因,为什么在找到匹配的情况后switch不会中断.

例如,我编写了一些模拟骰子的代码.对于每次投掷,我都会因为统计原因而计算(一,...... = int).

switch (actualThrow) {
case (1): one++; 
case (2): two++; 
case (3): three++; 
case (4): four++;
case (5): five++; 
case (6): six++; 
}
Run Code Online (Sandbox Code Playgroud)

不要知道,这种情况下,(3)情况(6)将被检查,如果我的罚球是3(我们为什么需要case语句后打破?),它会通过插入阻止break;,但我想明白了,为什么显然,以下情况似乎被检查,但执行,虽然条件没有得到满足.

java break switch-statement

1
推荐指数
1
解决办法
286
查看次数

Java开关 - 错过中断后执行的错误案例.为什么?

我正在网上学习Java并且在切换课程中上课.为了愚弄,我会在特定情况(将被执行)之后删除其中一个中断.我曾想过它会检查下一个案例,看看条件是否为false,并在退出前跳到默认情况.相反,它执行了不正确的情况并在默认情况之前中断.

这里出了什么问题?

public class Switch {
    public static void main(String[] args) {

        char penaltyKick = 'R';

        switch (penaltyKick) {

            case 'L': System.out.println("Messi shoots to the left and scores!");
                                break; 
            case 'R': System.out.println("Messi shoots to the right and misses the goal!");

            case 'C': System.out.println("Messi shoots down the center, but the keeper blocks it!");
                                break;
            default:
                System.out.println("Messi is in position...");

        }

    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:忘了提.输出是:

Messi shoots to the right and misses the goal! 
Messi shoots down the center, but the keeper blocks …
Run Code Online (Sandbox Code Playgroud)

java switch-statement

1
推荐指数
1
解决办法
665
查看次数

java switch语句机制

在下面的代码中,当我评论休息时,当我写一个案例(说"开始")它将打印下面输出的所有案例,意味着所有三行都打印,当我写"停止"它打印两个输出"机械停止"和"没有给出命令",为什么我需要在编译器搜索案例时给出break语句,如果匹配则打印相关输出.

    import java.util.Scanner;
    public class App{
    public static void main(String args[]){
    Scanner input = new Scanner(System.in);
    String text = input.nextLine();
    switch(text){
        case "start":
        System.out.println("Mechine Started");
        break;
        case "stop":
        System.out.println("Mechine stopped");
        break;
        default:
        System.out.println("No command given");


            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

java switch-statement

0
推荐指数
1
解决办法
318
查看次数