Java 获取未知原因的错误
试图设计一个抛硬币程序,要求用户说明他们想抛硬币的次数必须在1000次以下。然后,我从1-10中获得一个随机数,并根据用户将要进行的翻转次数将该数字分配给声明的每个数组索引 我似乎遇到了三个错误,涉及到无法解析math.random行上的符号。任何帮助都将不胜感激Java 获取未知原因的错误,java,arrays,input,coin-flipping,Java,Arrays,Input,Coin Flipping,试图设计一个抛硬币程序,要求用户说明他们想抛硬币的次数必须在1000次以下。然后,我从1-10中获得一个随机数,并根据用户将要进行的翻转次数将该数字分配给声明的每个数组索引 我似乎遇到了三个错误,涉及到无法解析math.random行上的符号。任何帮助都将不胜感激 import java.io.*; import java.util.*; public class coinFlip { public static void main(String[] args) throws IOExcep
import java.io.*;
import java.util.*;
public class coinFlip {
public static void main(String[] args) throws IOException {
// declare in as a BufferedReader; used to gain input from the user
BufferedReader in;
in = new BufferedReader(new InputStreamReader(System.in));
//declare variables
int flips;
int anArray[];
int x;
int r;
System.out.println("How many times would you like to flip your coin?");
flips = Integer.parseInt(in.readLine());
if(flips <= 1000) {
System.out.println("You want to flip " + flips + " times");
anArray = new int[flips];
for(x = 0; x <= flips; x++) {
r = Math.round(Math.random()*9)+1;
anArray[x] = r;
System.out.println(anArray[x]);
}
}
}
}
forx=0;x2个问题:
数组是基于零的,因此需要在数组上限小于1处停止
返回需要强制转换的长so
结果:
for(x = 0; x < flips; x++) {
r = (int) (Math.round(Math.random()*9)+1);
anArray[x] = r;
System.out.println(anArray[x]);
}
顺便说一句:您不需要导入java.util.*因为数学是在java.lang中的,长度为10的数组的最高索引为9。如果是抛硬币的话,请注意1和1之间的区别:为什么是1-10而不是1、0或2?为什么使用Math.round?如果是整数,它将在逗号后自动截断。@Marenthyu程序的第二部分需要查找翻转最多的部分,分配的一部分对我来说硬币只能是一面或另一面-如果是带tem faces的骰子,我可以使用以下表达式:PGood catch,但这不会导致编译错误。问题是Math.round返回一个long,他试图将其分配给int。@ZouZou我怎么能将其转换为int?我在手机上,所以我现在无法检查,但看起来它找不到方法?也许是遗漏了什么?你能试着把math.round省略掉吗?普通整数转换在删除逗号后的内容方面做得很好。因此,对于其他用户来说,结束这段对话时,请阅读以下内容:错误是他有自己的数学课。谢谢,我尝试了这一点,但仍然得到了无法解决的符号错误。我不知道math.round返回一个long。从中,您有自己的自定义数学类-删除该类将允许程序编译: