iは、アレイ内の患者の情報を記憶し、その特定の患者の記録がされる、に基づいて患者のIDを入力するようユーザに要求プログラムを作った玉画面に表示されます。今私は、ユーザーがIDを入力する患者のレコードを更新する必要がありますどのステートメントを使用する方法を知っていないと..私は追加と削除を使用することができますが、私はそう確信していないと信じて..私のプログラム: - (直後== 1)は、私が何をすべきか考えて問題を抱えている場所です。有する問題
package samplee.java;
import java.util.*;
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);
Scanner sdc = new Scanner(System.in);
Scanner update = new Scanner(System.in);
int id, it, num, i;
String name;
int ages;
int id1;
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);
}
System.out.println("Enter the patient's phone number");
System.out.println("-1 to finish entering");
num = sdc.nextInt();
if (id != -1) {
xx.setNum(num);
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.getId())
System.out.println(tt.toString());
break;
}
System.out.println("Enter the id of the student you want to update");
Scanner id11 = new Scanner(System.in);
id1 = id11.nextInt();
int up, id2;
patientss dd = new patientss();
for (i = 0; i < patient1.size(); i++) {
dd = patient1.get(i);
if (id1 == dd.getId()) {
System.out.println("If you want to change the name, type 1");
System.out.println("If you want to change the number, type 2");
System.out.println("If you want to change the id, type 3");
up = update.nextInt();
if (up == 1) {
}
}
}
}
}
そして、いや、これは私のpatientssクラスである: -
package samplee.java;
public class patientss {
int id;
String name;
int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
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 + " " + num;
}
}
'System.in'に5つの' Scanner'インスタンスは必要ありません。ちょうど1つ使ってください。 – Tom
あなたのインデントが大きく乱れています。これを修正してください。コードは読めません(たとえば、最初の '' if''を見てください)。また、同じ入力ストリームに5つのスキャナがあるのはなぜですか? – f1sh
すでに患者を変数 'dd'に抽出しました。その値を変更するためにsetterメソッドを呼び出すために使用します。 – Tom