//代码里的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);
}
}
}
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整体比较,这样判断结果始终是错的,没办法添加,我猜你本来可能想让cr.id 和 从xh中读出来的 one 来进行比较
2、如果你的Course类和视频里面的构造方法一样,那么它的 id 和 name 都是String类型,而读出的 one 是int类型,两个对象的类型不同,判断结果也是否,无法添加
修改成这样大概就可以执行了:
String one=xh.next();
if(cr.id.equals(one))
虽然感觉已经回答晚了hhh不过希望能帮到你!?