为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下各位大佬,我的这段代码最后的f();方法为什么不执行,多谢啦

//代码里的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);

}

}


}



正在回答

1 回答

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不过希望能帮到你!?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问一下各位大佬,我的这段代码最后的f();方法为什么不执行,多谢啦

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信