Java中方法内调用其他方法后后续代码不运行的问题如何解决
问题根因
你的student()方法存在循环嵌套逻辑错误,导致方法需要完成超大量的输入操作才能结束执行,因此感知到后续代码无法运行:
- 代码排版不规范,漏写了第一个for循环的闭合大括号,导致两个本应并列的循环变成嵌套结构
- 外层
i循环需要执行150次,每次循环内部都会重新定义学生姓名数组,再启动150次的j循环,累计需要输入150*150=22500次内容,student()方法才会执行结束,返回addNewStudent()执行剩余代码
修复方案
场景1:单次添加1名学生(匹配当前addNewStudent的交互逻辑)
不需要定义长度为150的数组做循环录入,直接用变量存储单条学生信息即可:
public static void student(){ Scanner input = new Scanner(System.in); String student_id; System.out.print("Enter Student ID : "); student_id = input.nextLine(); String student_name; System.out.print("Enter Student Name : "); student_name = input.nextLine(); // 若需要持久化存储学生信息,可在此处调用全局存储逻辑,将数据存入全局数组/集合 }
场景2:批量添加150名学生
调整循环结构为并列,同时补充交互提示避免无意义等待:
public static void student(){ Scanner input = new Scanner(System.in); String[] student_id=new String[150]; for(int i =0;i<student_id.length;i++){ System.out.print("输入第" + (i+1) + "位学生的ID: "); student_id[i] = input.nextLine(); } String[] student_name=new String[150]; for(int j =0;j<student_name.length;j++){ System.out.print("输入第" + (j+1) + "位学生的姓名: "); student_name[j] = input.nextLine(); } }
额外优化建议
- 不要在多个方法中重复创建
Scanner对象,全局共用同一个即可,避免输入流冲突 - 学生信息的存储数组建议定义为全局静态变量,不要在
student()方法内局部声明,否则方法执行结束后录入的数据会被销毁
内容的提问来源于stack exchange,提问作者githmi bandara
相关产品推荐
相关产品推荐

