2016-04-12 9 views
0

私は基本的に、病院で患者のID番号を取得し、その患者のIDを入力することで見たい特定の患者の記録を表示するプログラムの作成に取り組んでいます私は別の患者やものの情報を格納することができますが、特定の患者のレコードを印刷するためにifステートメントを使用する必要がある場合、動作しません!arrylistのif文に問題があります

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文でエラーを取得する:/ここでのプログラムですそれぞれ患者とした。あなたのコードは、(おそらく)でなければなりません:

if(it==tt.getID()) 

また、お使いの命名規則は奇妙である、あなたはあなたのクラスのnameとdont'tの使用$およびそれらの他のシンボルの最初の文字を大文字にする必要があります。

関連する問題