所以我正在学习Java,也许他没有很好地解释扫描仪的工作方式和限制,或者我正在查看愚蠢的事情......但我在answer = answer.nextInt();
我收到错误不要为bomb
收到此错误,但它的使用方式几乎相同......
代码:
Scanner yesNo = new Scanner(System.in);
Scanner input = new Scanner(System.in);
//
//answer auto set to no. goes to first if, then asks for confirmation,
// then check answer again and go to if, else if or else.
//
int answer = 0;
while (answer != 1)
if (answer == 0) {
System.out.println("In how many seconds should we detonate?");
int bomb = input.nextInt();
//this number will be used later in else if (answer == 1)
System.out.println("Is " + bomb + " seconds correct? 1 for yes, 0 for no");
answer = answer.nextInt();
//error above "Cannot invoke nextint() on the primitive type int"
//Need this to grab a number from user to assign a new value to answer
怎么办?感谢。
答案 0 :(得分:4)
首先,您有一个带有参数System.in的Scanner实例,因此它将记录"记录"你的键盘(我认为是没有使用扫描仪)。然后,你有一个名为"回答"的int变量。你指定零值。最后你有另一个名为"炸弹"的变量。您将获得所需的价值。
正如我在你的答案中所看到的那样。评论,你错了一件事:" input.nextInt()"是一个int值。当你使用input.nextInt()时,你发送了一条消息,上面写着"嘿兄弟,给我第一个这个愚蠢的人压过的int",但是你不做更多的东西。 "输入"只是一个记录击键的扫描仪(正如它的类名所示)。
所以事实上,当你做" input.nextInt()"你得到一个int值,当你做" bomb = input.nextInt()"或" answer = input.nextInt()"你唯一要做的就是给予"炸弹"或者"回答"那个int值。
答案 1 :(得分:2)
int是原始值。它不是一个对象,也没有方法。
可能你想做
answer = input.nextInt();
答案 2 :(得分:1)
nextInt()是一个函数,它是对象类型Scanner的一部分。要调用.nextInt(),您必须拥有Scanner类型的对象。
所以" int bomb = input.nextInt();"工作正常,因为"输入"是Scanner类的对象。该函数运行并从输入返回另一个对象(整数),该对象存储在int bomb中。
该行" answer = answer.nextInt();"无法编译因为"回答"是类整数的对象。 integer没有名为nextInt()的函数。
相应的行是" answer = input.nextInt();"使用您的Scanner对象返回另一个整数来存储在"回答"。
答案 3 :(得分:0)
int answer = 0;
answer = answer.nextInt();
你在int上调用nextInt()
。你需要在扫描仪上调用它:
answer = input.nextInt();