2016-04-12 122 views
0

有问题所以基本上我正在制作一个程序,它需要在医院的一些病人的身份证号码,并显示用户想要通过输入该病人的身份证看到一个特定病人的记录编号..我可以存储不同患者和资料的信息,但是当我必须使用if语句来打印某个特定患者的记录时,它不起作用!我的if语句得到一个错误:/这里是程序: -如果陈述与arraylist

package samplee.java; 
import java.util.*; 
import java.util.ArrayList; 
import java.util.Scanner; 

public class patient$ { 

    public static void main(String[] args) { 
     ArrayList<patientss> patient1= new ArrayList<patientss>(); 
     Scanner src= new Scanner(System.in); 
     Scanner sc= new Scanner(System.in); 
     Scanner stc= new Scanner(System.in); 
     int id,it,num,i; 
     String name; 
     int ages; 
     System.out.println(" j"); 
     Boolean leave = false; 
     while(!leave){ 
      patientss xx= new patientss(); 
      System.out.println("Enter the patient's ID "); 
      System.out.println("-1 to finish entering"); 
      id=src.nextInt(); 
      if(id != -1){ 
      xx.setId(id); 

     } 
      System.out.println("Enter the patient's name "); 
     System.out.println("-1 to finish entering"); 
     name=stc.next(); 
     if(id != -1){ 
      xx.setName(name); 
      patient1.add(xx); 
     } 
      else { leave = true; }//Escape the while loop. 
     } 
     System.out.println("Enter the id of a student"); 
     it=sc.nextInt(); 
     patientss tt= new patientss(); 
     for(i=0;i<patient1.size();i++){ 
      { 
      tt=patient1.get(i); 
     if(it==tt) // this is the statement that isn't working and is showing error. 
      System.out.println(tt.toString()); 
      } 
     } 
    } 

} 

和高雅这里是patientss

package samplee.java; 

public class patientss { 
int id; 
String name; 
public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 
public String toString(){ 
    return name+" "+id; 
} 
} 
+0

你看到什么错误? –

+2

欢迎来到堆栈溢出。当你写:“并且我在if语句中出错时” - *总是*当你报告你得到一个错误时说错误是什么。这是编译时错误吗?执行时异常?此外,请将您的代码缩减为[mcve] - 我强烈怀疑您提供的大部分代码并非我们需要的帮助。 –

回答

1
it=sc.nextInt(); 
patientss tt= new patientss(); 
... 
if(it==tt) 

它和TT是不同的类型,INT类和病人分别。您的代码应该(可能)是:

if(it==tt.getID()) 

而且,你的命名约定是奇怪的,你应该利用你的类的名字和dont't使用$和他们的其他符号的第一个字母。