請問一下各位大佬,我的這段代碼最后的f();方法為什么不執(zhí)行,多謝啦
//代碼里的Course類和Student類都是和視頻里一樣的
package shili;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class StudentTest {
public List<Course> a;
public StudentTest() {
this.a=new ArrayList<Course>();
}
public void addCourse() {
Course cr1=new Course("1","米飯");
Course cr2=new Course("2","包子");
Course cr3=new Course("3","餅");
Course cr4=new Course("4","餃子");
Course cr5=new Course("5","饅頭");
Course cr6=new Course("6","壽司");
Course cr7=new Course("7","雞腿");
a.add(cr1);
a.add(cr2);
a.add(cr3);
a.add(cr4);
a.add(cr5);
a.add(cr6);
a.add(cr7);
}
public void forec() {
for(Object k:a) {
Course cr=(Course) k;
System.out.println(cr.id+cr.name);
}
}
public static void main(String[] args) {
StudentTest xc=new StudentTest();
System.out.println("本餐廳有以下主食:");
xc.addCourse();
xc.forec();
Student student=new Student("1","小明");
System.out.println("請"+student.name+"選餐:");
Scanner xh=new Scanner(System.in);
for(int i=0;i<3;i++) {
System.out.println("請輸入食物序號:");
int one=xh.nextInt();
for(Course cr:xc.a) {
if(cr.id.equals(xh)) {
student.courses.add(cr);
}
}
}
xc.f(student);
}
public void f(Student student) {
for(Course cr:student.courses) {
System.out.println(cr.id+cr.name);
}
}
}
2019-05-14
System.out.println("請輸入食物序號:");
int one=xh.nextInt();
for(Course cr:xc.a) {
????if(cr.id.equals(xh)) {
????student.courses.add(cr)
}
無法輸出的原因有兩個,在粗體的地方↑
1、if語句中 你的cr.id一直是在和xh整體比較,這樣判斷結(jié)果始終是錯的,沒辦法添加,我猜你本來可能想讓cr.id 和 從xh中讀出來的 one 來進(jìn)行比較
2、如果你的Course類和視頻里面的構(gòu)造方法一樣,那么它的 id 和 name 都是String類型,而讀出的 one 是int類型,兩個對象的類型不同,判斷結(jié)果也是否,無法添加
修改成這樣大概就可以執(zhí)行了:
????String?one=xh.next();
????if(cr.id.equals(one))?
雖然感覺已經(jīng)回答晚了hhh不過希望能幫到你!?