java小程序运行问题,输入部分有问题。

程序运行第一遍选择信息输入,但一次性跳出输入姓名,输入学号。当选择再次输入却很正常一个个出现提示依次输入,感觉String xingming=in.nextline();第一遍未运行,求大神解答。

import java.util.Scanner;
public class test {
@SuppressWarnings("resource")
public static void main(String[] args) {

    Student stus=new Student();
    String choose;

    Scanner in=new Scanner(System.in);
     int n;
int s=0;
do{
    System.out.println("-----------欢迎登陆----------------");
    System.out.println("---------***********--------------");
    System.out.println("                                  ");
    System.out.println("1.学生信息录入"+"     "+"2.学生总体信息查询");
    System.out.println("3.学生信息修改"+"     "+"4.学生个人信息查看");
    System.out.println("                                  ");
    System.out.println("---------***********--------------");

    System.out.println("请选择要进行项目"); 
     n=in.nextInt();



    while(n==1)
    {

         do{
              System.out.println("请输入学生姓名");            
              String xingmin=in.nextLine();
          stus.shuru(xingmin);

                System.out.println("请输入学生学号");              
          String xuehao=in.nextLine();
          stus.shuru4(xuehao);

              System.out.println("请输入相应学生的年龄");
          String nianling=in.nextLine();
          stus.shuru2(nianling);

              System.out.println("请输入学生专业");
          String zhuanye=in.nextLine();
          stus.shuru3(zhuanye);

    System.out.println("是否继续输入n/y");
  choose=in.nextLine(); 


        }while(choose.equals("y")||choose.equals("Y"));
        n--;
    }


    while(n==2)
    {
    stus.shows();
    n--;


    }

/*while(n==4)
        {
        System.out.println("请输入查询学号");
        String check=in.nextLine();
        stus.chaxun(check);
        n--;
        }*/




    System.out.println("输入5返回主菜单;结束服务请按8");
    s=in.nextInt();
    }while(s==5);


System.out.println("欢迎下次使用");}}



public class Student{

int i=0,j=0;
String a[]=new String[100];
String b[]=new String[100];
String c[]=new String[100];
String d[]=new String[100];
//Scanner in=new Scanner(System.in);
public void shuru(String name)
{

    for(i=0;i<a.length;i++)
    {
        if(a[i]==null)
    {
        a[i]=name;

       break;}
    }
}




public void shuru2( String age)
{
    for(j=0;j<b.length;j++)
    {
        if(b[j]==null)
        {
            b[j]=age;
            break;
        }
    }

    }



public void shuru3(String major)
{
    for(j=0;j<c.length;j++)
    {
        if(c[j]==null)
        {
            c[j]=major;
            break;
        }
    }
}




public void shuru4(String number)
{

    for(i=0;i<d.length;i++)
    {
        if(d[i]==null)
            {
            d[i]=number;

        break;
        }
    }
        }


/*public void chaxun(String no)

{          
        for(i=0;i<d.length;i++)

            if(no.equals(d[i]))
            {
                System.out.println("学生姓名"+a[i]);
                System.out.println("学生学号"+d[i]);
                System.out.println("学生年龄"+b[i]);
                System.out.println("学生专业"+c[i]);
            }
            else 
                System.out.println("未查询到相关学生信息");
        }*/

public void shows()
{
    System.out.println("-----------学生信息------------");
    for(i=0;i<a.length;i++)
    {
        if(a[i]!=null)
        {System.out.print("学生姓名"+a[i]+"    ");
        System.out.print("学生年龄"+b[i]+"    ");
        System.out.print("学生所学专业"+c[i]+"     ");
        System.out.println("学生学号"+d[i]);
        System.out.println("                      ");}
        else
            System.out.print("");
    }
}

}

http://blog.csdn.net/rebelqsp/article/details/22403439

do ...while... 无论while条件是否满足都先执行了一次do后面的语句。。