我在代码中使用了 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/