2014-03-31 55 views
-2

在我创建的程序中,我为用户使用整型变量创建了一个菜单,当用户选择一个菜单时,他们将激活该选项。我试图使用readnextInt,但它不工作,我不知道为什么。扫描仪的代码无法使用。使用扫描仪从用户输入读取整数

import java.util.Scanner; 


public class username 
     { 
    public static void main(String[] args) 
{ 


    { 
     int Floor; 
     Floor = 0; 

     int Destination; 
     Destination = 0; 

     int UseLift; 
     int AuditReport; 
     int ExitLift; 
     int a; 


     UseLift = 1; 
     AuditReport = 2; 
     ExitLift = 3; 
     a = read.NextInt; 


     Scanner b = new Scanner(System.in); 
     int a = in.nextInt(); 

     if (a == 1) 
     System.out.println(" Enter your name "); 

     else if (a == 2) 
    System.out.println(""); 

     else if(a == 3) 
    System.out.println(" Please Exit Lift "); 

{ 
+2

这甚至不能编译你的'Scanner'实例被命名'B'不'in' –

+0

而且这是什么'一个= read.NextInt;'?? –

+0

另外,括号甚至没有正确地放置或匹配 – Clark

回答

0

首先,什么是read?我没有看到它在任何地方定义为Scanner

其次,一旦read定义(Scanner read = new Scanner(System.in);),那么你可以调用nextInt(),不NextInt。所有方法试图调用它们时都需要这些括号。

1

这条线有你的错误。

Scanner b = new Scanner(System.in); 
int a = in.nextInt(); 

您的扫描仪被称为B,不是。使用b.nextInt()代替。

Scanner b = new Scanner(System.in); 
int a = b.nextInt(); 

此外,你有一个错误的Read.nextInt(),你没有定义Read。我不认为这条线正在尝试做任何事情,所以只是删除它。

+0

我现在已经这样做了,但是它一直要求我重命名a,在int a = b.nextInt()下面仍然有一条红线; @ Anubian Noob – user3151959

+0

邮政堆栈跟踪或错误消息请吗? –

0

错误

声明

a = read.NextInt; 

似乎是多余的。变量read未定义。

a = read.NextInt; 

Scanner b = new Scanner(System.in); 
int a = in.nextInt(); 

in变量未定义但用于读取nextInt()

int a = in.nextInt(); 

它必须指向Scanner类的实例。将其替换为b

您在相同范围内定义了a两次。因此你的IDE必须呈现出红色线下

int a; 
... 
... 
Scanner b = new Scanner(System.in); 
int a = in.nextInt(); 

,最后是不是一个错误,但您的代码不遵循变量名和类名JAVA命名约定。 欲了解更多详情请阅读Java Naming Conventions

更正建议

  1. 删除a = read.nextInt;,因为它似乎是多余的。
  2. 删除int a;当你在Scanner 实例化之后重新定义它。
  3. 变化int a = in.nextInt();int a = b.nextInt();
0
剩余

代码是正确的只是改变这一行 “INT A = in.nextInt();”到“int a = b。nextInt();“因为b是你扫描仪的名字,而nextInt()方法属于扫描仪类”in.nextInt()“,所以不正确