由于某种原因,即使我使用nextInt,我也会收到一条错误,即扫描程序无法转换为int。这是为什么?在这里完成菜鸟。
System.out.println("How many numbers does your array contains?") ;
Scanner num= new Scanner(System.in);
Scanner mis=new Scanner(System.in);
System.out.println(num.nextInt());
int maara[]=new int[num];
for(int counter=0; counter<maara.length; counter++){
System.out.println("enter num");
System.out.println(mis.nextInt());
maara[counter]=mis ;
我已经搜索了很多,但问题始终是人们使用nextLine,在这里我说明输入将是一个整数并且它仍然不会运行。 这只是代码的一部分,但我遇到了这个错误。我已经导入了扫描仪。 非常感谢你提前!
P.S。 - 我在ubuntu 17.10上使用netbeans。不知道这是否重要。
答案 0 :(得分:0)
在此行maara[counter]=mis;
上,您试图将mis
(Scanner
)放入int
数组中。
您需要保存nextInt()
的结果并将其放入。
int tmp = mis.nextInt();
System.out.println(tmp);
maara[counter] = tmp;
答案 1 :(得分:0)
错误与往常一样。将最后两个语句替换为
System.out.println(“Enter a number”);
int x = mis.nextInt();
maara[counter] = x;
答案 2 :(得分:0)
Scanner
不是int
。如果你以正确的方式提出问题,那就会给你int
。
它就像一个超市:它会卖给你牛奶,但它本身并不是牛奶。你必须从超市买牛奶。
您需要将类型为int
的内容分配给数组元素:
maara[counter]=mis.nextInt();
但请注意,您不想这样做,因为您将获得与前一行打印的int
(可能)不同,因为您要求的是来自扫描仪的两个值。相反,做一些像:
int value = mis.nextInt();
System.out.println(value);
maara[counter] = value;