java - java中生成随机数的switch语句: not working

标签 java if-statement random 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");
        }
    }
}

但是当我使用 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");
        }
    }
}

最佳答案

如果您不终止 switch 语句中的

case 语句(通常使用 break,但 return 抛出异常也能达到目的)。在您的情况下,当您随机生成 0 时,它的情况会被执行,然后程序将继续执行下一个情况(1)。您可以通过在每个 case 末尾添加 break 语句来解决此问题:

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

更多信息可以在Java's tutorial on the subject中找到.

关于java - java中生成随机数的switch语句: not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37383521/

相关文章:

java - 如何让 servlet 中的 System.out.println 显示在控制台上?

java - JAX-RS 404 未找到异常映射器

java - 在 if 语句中使用 return 方法

algorithm - 伪数生成

javascript - 赠品功能

java - 如何从 Java 中的 TreeMap 获取根节点?

java - 为什么返回 Java 对象引用比返回原语慢得多

c - if条件不成功

javascript - 如果输入字段为空并且用户使用空白输入按回车键,我只想打印一次消息。我哪里出错了

php - 为类似凭证的行为制作最佳的伪随机唯一代码生成器