java中生成随机数的switch语句:不起作用

Orc*_*qui 2 java random if-statement switch-statement

我在代码中使用了 switch 语句来掷硬币并生成随机结果。如果硬币落在 0 上,则显示反面;如果硬币落在 1 上,则显示正面。但是当我使用 switch 语句时,输出总是要么只是“正面”,要么是“尾巴”和“正面”。

我的代码:

import static java.lang.System.*;
import java.util.*;

class generateRandomNumbers{
    public static void main(String[] args){
        Random coin = new Random();
        int toss;
        toss = coin.nextInt(2);
        switch(toss){
            case 0 : out.println("tails");
            case 1 ; out.println("heads");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用 if-else 语句时,它按计划工作:

import static java.lang.System.*;
import java.util.*;

class generateRandomNumbers{
    public static void main(String[] args){
        Random coin = new Random();
        int toss;
        toss = coin.nextInt(2);
        if(toss == 0){
            out.println("tails");
        }
        else{
            out.println("heads");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Mur*_*nik 5

caseswitch如果不终止语句中的 s (通常使用 a break,但returning 或throwing 异常也可以解决问题)。在你的情况下,当你随机生成0它的情况时,它的情况就会被执行,然后程序就会继续到下一个情况(1)。您可以通过break在每个末尾添加语句来解决此问题case

switch(toss){
    case 0 : 
        out.println("tails");
        break; // Here
    case 1 :
        out.println("heads");
        break; // And here
}
Run Code Online (Sandbox Code Playgroud)

其他信息可以在有关该主题的 Java 教程中找到。