You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:54:02