JAVA问题。。。 输入n时候报错。 而且 是否继续y/n。 这段语句下面又出现一行请输入学号。

while(true){
if(choose==1){
System.out.println("请输入学号");
student.setNo(In.nextInt());
System.out.println("请输入姓名");
student.setName(In.next());
System.out.println("请输入成绩");
student.setScore(In.nextFloat());
System.out.println("是否继续y/n");
if( flag.equalsIgnoreCase("n")){

break;}

}
全部代码

public class RuKou {
public static void main(String[] args) {
Student student=new Student();
student.show();
ArrayList<Student> list =new ArrayList<Student>();
Scanner In=new Scanner(System.in);
int choose=In.nextInt();
list.add(student);
String flag=In.next();

while(true){
if(choose==1){
System.out.println("请输入学号");
student.setNo(In.nextInt());
System.out.println("请输入姓名");
student.setName(In.next());
System.out.println("请输入成绩");
student.setScore(In.nextFloat());
System.out.println("是否继续y/n");
if( flag.equalsIgnoreCase("n")){

break;}

}

else if(choose==2){

for(Student s:list ){

s.toString();

}

}

else{
System.out.println("输入有误");
}
}

}
}
最新回答
因为太帅被罚块

2024-11-08 05:51:34


String flag=In.next();

放在循环内部.

System.out.println("是否继续y/n");的下面
追问
是可以了。 在问你一个问题, 输入n循环就终止了。 我还想输入2的时候 打印录入的学生信息。 怎么弄啊。 麻烦你了。
追答
我的想法是:把你接收choose的数值也放在循环内部,即
if(choose==1)的前面
将choose==1里面的内容再嵌套一层循环,
那么
String flag=In.next();

就应该放在内部的循环中,而外部的循环就应该从新定义一个来判断。