当前位置:编程学习 > JAVA >>

使用input.nextLine()结果输入时跳过了,想不通

public class Teacher {
public float salary;
public String tName;
}


业务类:
import java.util.Scanner;

public class TeacherBiz {
Teacher[] teacher=new Teacher[5];
public void inputTeacherInfo(){
Scanner input=new Scanner(System.in);
for(int i=0;i<5;i++){
teacher[i]=new Teacher();
System.out.println("请输入第"+(i+1)+"个老师的姓名");
teacher[i].tName=input.next();         //此处使用input.nextLine()时第二次输入老师名字直接跳过,之后每次老师名字输入都跳过,为什么啊?
System.out.println("请输入第"+(i+1)+"个老师的工资");
teacher[i].salary=input.nextFloat();
}
}

public Teacher[] getAllTeachers(){
return teacher;
}

public float getAvgSalary(){
int count=0;
float sumSalary=0;
for(Teacher t:teacher){
if(t.salary!=0){
sumSalary+=t.salary;
count++;
}
}
float avgSalary=sumSalary/count;
return avgSalary ;
}
}


测试类
public class TestTeacherBiz {
public static void main(String[] args) {
TeacherBiz tec=new TeacherBiz();
tec.inputTeacherInfo();
for(Teacher t:tec.getAllTeachers()){
System.out.println("姓名:"+t.tName+"\t工资:"+t.salary);
}
System.out.println("所有老师的平均工资为:"+tec.getAvgSalary());
}
}

3个类,执行时,在注释处使用teacher[i].tName=input.nextLine()第二次之后每次输入名字均被跳过,然后输出的结果是第二次到第五次的老师名字为空?为啥?        --------------------编程问答-------------------- Scanner input=new Scanner(System.in)放入循环中。 --------------------编程问答--------------------
引用 1 楼 liujinjiaer 的回复:
Scanner input=new Scanner(System.in)放入循环中。

大概知道是为什么导致跳过,不过想听听专业的解释。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,