第一次可以正常循环,第二次怎么就报错了呢?大神帮忙看看

时间:2021-07-20 20:07:47
这是循环代码 第一次可以正常循环,第二次怎么就报错了呢?大神帮忙看看
运行后第一个循环正常 第二次第三次出现问题 第一次可以正常循环,第二次怎么就报错了呢?大神帮忙看看
第二次 第三次这条语句没执行 第一次可以正常循环,第二次怎么就报错了呢?大神帮忙看看

4 个解决方案

#1


问题出在nextInt上。nextInt读取数字,回车会被nextLine接收。意味第二轮循环跳过姓名输入。

public static void main(String[]args){
Scanner s = new Scanner(System.in);
String input;
User[] ulist = new User[3];
for(int i=0; i<ulist.length; i++){
ulist[i] = new User();
System.out.println("请输入"+(i+1)+"姓名:");
input = s.nextLine();
ulist[i].setName(input);
System.out.println("请输入"+(i+1)+"年龄:");
input = s.nextLine();
ulist[i].setAge(Integer.parseInt(input));
}
}

#2


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Student[] stu = new Student[3];
for(int i=0;i<stu.length;i++){
stu[i] = new Student();
System.out.println("请输入第"+(i+1)+"个学生姓名");
stu[i].setName(scanner.next());
System.out.println("请输入第"+(i+1)+"个学生年龄");
stu[i].setAge(scanner.nextInt());
}
for(int i = 0;i<stu.length ;i++){
System.out.println("第"+(i+1)+"组学生姓名:"+stu[i].getName() + " ;学生年龄:"+stu[i].getAge());
}
}

next() 
                查找并返回来自此扫描器的下一个完整标记。
      nextLine() 
                此扫描器执行当前行,并返回跳过的输入信息。


数字的回车被nextline接收,

#3


引用 2 楼 wei_wxx 的回复:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Student[] stu = new Student[3];
for(int i=0;i<stu.length;i++){
stu[i] = new Student();
System.out.println("请输入第"+(i+1)+"个学生姓名");
stu[i].setName(scanner.next());
System.out.println("请输入第"+(i+1)+"个学生年龄");
stu[i].setAge(scanner.nextInt());
}
for(int i = 0;i<stu.length ;i++){
System.out.println("第"+(i+1)+"组学生姓名:"+stu[i].getName() + " ;学生年龄:"+stu[i].getAge());
}
}

next() 
                查找并返回来自此扫描器的下一个完整标记。
      nextLine() 
                此扫描器执行当前行,并返回跳过的输入信息。


数字的回车被nextline接收,
谢谢!

#4


引用 1 楼 lynmison 的回复:
问题出在nextInt上。nextInt读取数字,回车会被nextLine接收。意味第二轮循环跳过姓名输入。

public static void main(String[]args){
Scanner s = new Scanner(System.in);
String input;
User[] ulist = new User[3];
for(int i=0; i<ulist.length; i++){
ulist[i] = new User();
System.out.println("请输入"+(i+1)+"姓名:");
input = s.nextLine();
ulist[i].setName(input);
System.out.println("请输入"+(i+1)+"年龄:");
input = s.nextLine();
ulist[i].setAge(Integer.parseInt(input));
}
}
谢谢!

#1


问题出在nextInt上。nextInt读取数字,回车会被nextLine接收。意味第二轮循环跳过姓名输入。

public static void main(String[]args){
Scanner s = new Scanner(System.in);
String input;
User[] ulist = new User[3];
for(int i=0; i<ulist.length; i++){
ulist[i] = new User();
System.out.println("请输入"+(i+1)+"姓名:");
input = s.nextLine();
ulist[i].setName(input);
System.out.println("请输入"+(i+1)+"年龄:");
input = s.nextLine();
ulist[i].setAge(Integer.parseInt(input));
}
}

#2


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Student[] stu = new Student[3];
for(int i=0;i<stu.length;i++){
stu[i] = new Student();
System.out.println("请输入第"+(i+1)+"个学生姓名");
stu[i].setName(scanner.next());
System.out.println("请输入第"+(i+1)+"个学生年龄");
stu[i].setAge(scanner.nextInt());
}
for(int i = 0;i<stu.length ;i++){
System.out.println("第"+(i+1)+"组学生姓名:"+stu[i].getName() + " ;学生年龄:"+stu[i].getAge());
}
}

next() 
                查找并返回来自此扫描器的下一个完整标记。
      nextLine() 
                此扫描器执行当前行,并返回跳过的输入信息。


数字的回车被nextline接收,

#3


引用 2 楼 wei_wxx 的回复:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Student[] stu = new Student[3];
for(int i=0;i<stu.length;i++){
stu[i] = new Student();
System.out.println("请输入第"+(i+1)+"个学生姓名");
stu[i].setName(scanner.next());
System.out.println("请输入第"+(i+1)+"个学生年龄");
stu[i].setAge(scanner.nextInt());
}
for(int i = 0;i<stu.length ;i++){
System.out.println("第"+(i+1)+"组学生姓名:"+stu[i].getName() + " ;学生年龄:"+stu[i].getAge());
}
}

next() 
                查找并返回来自此扫描器的下一个完整标记。
      nextLine() 
                此扫描器执行当前行,并返回跳过的输入信息。


数字的回车被nextline接收,
谢谢!

#4


引用 1 楼 lynmison 的回复:
问题出在nextInt上。nextInt读取数字,回车会被nextLine接收。意味第二轮循环跳过姓名输入。

public static void main(String[]args){
Scanner s = new Scanner(System.in);
String input;
User[] ulist = new User[3];
for(int i=0; i<ulist.length; i++){
ulist[i] = new User();
System.out.println("请输入"+(i+1)+"姓名:");
input = s.nextLine();
ulist[i].setName(input);
System.out.println("请输入"+(i+1)+"年龄:");
input = s.nextLine();
ulist[i].setAge(Integer.parseInt(input));
}
}
谢谢!