请老师检查,并指正
来源:4-5 项目作业
看云淡风清
2021-11-20 21:36:26
public static void travel() {
String[] places = new String[5];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < places.length; i++) {
System.out.println("请输入第" + (i+1) + "个旅游目的地");
places[i] = sc.next();
}
System.out.println("以下地方共旅游参考:");
for (String s : places) {
System.out.println(s);
}
int n =((int) Math.random() * 10) % 5;
System.out.println("随机生成的旅游目的地:" + places[n]);
sc.close();
}
搜索
复制
1回答
好帮手慕小蓝
2021-11-21
同学你好,同学代码中的随机数生成语句,无法正确获取随机数,该语句生成的数据永为0;
原因是强制类型转换的语句执行优先级最高,会先获取0,然后再进行*10和%5的运算,所以该值永为0;
此处应当将除强制类型转换所有的代码用小括号包裹以提示其运算优先级,最后将结果进行强制类型转换。修改后的代码如下:
int n = (int)(Math.random() * 10 % 5);
此处获取随机数的计算方式可以优化为:
int n = (int)(Math.random() * 5);
祝学习愉快~
相似问题