for循环里面的第一条输入语句不能被执行 怎么回事啊

package Person;

import java.util.Scanner;

public class Test {

public 
public static void main(String[] args) {
    // TODO 自动生成的方法存根
    Scanner in=new Scanner(System.in);
    int n=in.nextInt(),s=0,e=0,r=0;
    String[] name=new String[n],sex=new String[n],job=new String[n];
    int[] id=new int[n],money=new int[n];
    Person[] person=new Person[n];
    System.out.println("请按姓名,性别,工作,身份证,月收入分别输入要输入的个人信息:");
    for(int i=0;i<n;i++)
    {
        name[i]=in.nextLine();
        sex[i]=in.nextLine();
        job[i]=in.nextLine();
        id[i]=in.nextInt();
        money[i]=in.nextInt();
        person[i]=new Person(name[i],sex[i],job[i],id[i]);
        if(job[i]=="student")
            s++;
        else if(job[i]=="employee")
            e++;
        else
            r++;
    }
    Student[] student=new Student[s];
    int s1=0;
    for(int i=0;i<n;i++)
    {
        if(job[i]=="student")
        {
            student[s1]=new Student(name[i],sex[i],job[i],id[i]);
            s1++;
        }
    }
    Employee[] employee=new Employee[e];int j1=0;
    for(int i=0;i<n;i++)
    {
        if(job[i]=="employee")
        {
            employee[j1]=new Employee(name[i],sex[i],job[i],id[i],money[i]);
            j1++;
        }
    }
    Retired[] retired=new Retired[r];int r1=0;
    for(int i=0;i<n;i++)
    {
        if(job[i]=="retired")
        {
            retired[r1]=new Retired(name[i],sex[i],job[i],id[i],money[i]);
            r1++;
            retired[r1].introduceself();
        }
    }
    in.close();
}

}

2个回答

 因为你int n=in.nextInt(),s=0,e=0,r=0;执行这句后scanner没有换行,所以下一个nextLine读取的是这个整形所在的行。
 多加一个nextLine,for循环就能正常了
int n=in.nextInt(),s=0,e=0,r=0;
 in.nextLine();

变量是一行一行输入的么

person[i]=new Person(name[i],sex[i],job[i],id[i]);

这里下断点调试下

if(job[i]=="employee")
java字符串不能这么比,用 job[i].equals("employee")
别的类似

qq_40736950
夜半歌声丶 谢谢 很有帮助
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问