今天在做习题时发现了一个问题,代码如下
public static void main(String[]args){
boolean xunhuan=true;
ArrayList<students>List=new ArrayList<students>();
for(int i=0;i<i+1;i++){
students xuesheng=new students();
System.out.println("please input the student's name ");
Scanner name=new Scanner(System.in);
xuesheng.setname(name.next());
System.out.println("请输入学生的年龄");
Scanner age=new Scanner(System.in);
xuesheng.setage(age.nextInt());
List.add(xuesheng);
System.out.println("if you want to continue?");
Scanner decide=new Scanner(System.in);
String asd=decide.next();
if(asd.equals("yes")){
continue;
}
if(asd.equals("no")){
break;
}
else {
System.out.println("输入错误");
break;
}
}
System.out.println("请输入查询学生的名字");
Scanner chaxun=new Scanner(System.in);
for(int i=0;i<List.size();i++){
students xuesheng[]=new students[List.size()];
xuesheng=List.toArray(xuesheng);
String name=xuesheng[i].getname();
if(name.equals(chaxun)){
xuesheng[i].getaddress();
xuesheng[i].getage();
xuesheng[i].getemail();
break;
}
}
}
其中students是一个自定义类,代码如下
public class students {
private String name ;
private int age;
private int gender;
private String phone;
private String address;
private String email;
public void setname(String n){
name=n;
}
public String getname(){
return name;
}
public void setphone(String n){
phone=n;
}
public void setaddress(String n){
address=n;
}
public void setemail(String n){
email=n;
}
public void setage(int n){
age=n;
}
public void gender(int n){
gender=n;
}
public String getphone(){
return phone;
}
public String getemail(){
return email;
}
public String getaddress(){
return address;
}
public int getage(){
return age;
}
public int getgender(){
return gender;
}
public students(){
}
public students(String name,int age,int gender,String phone,String address,String email){
setname(name);
setaddress(address);
setemail(email);
setage(age);
setphone(phone);
}
}
在我输入no希望结束循环时,循环确实结束了,但是在显示"请输入查询学生的名字"后在控制台无法继续输入。目测是Scanner的问题,求大神解答。谢谢!