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

Java程序循环后println不执行,输出末尾无法换行问题求助

问题分析与修复

你的代码核心问题是循环逻辑错误,导致循环无法正常结束,因此循环外的换行代码永远执行不到,具体问题点和修复方案如下:

问题拆解

  1. 覆盖了初始计数变量:你在循环内重新给numVals赋值,把原本用来记录要读取整数数量的变量覆盖成了每次读取的整数,导致循环条件i <= numVals彻底失控。比如输入初始值2后,第一次循环读取95,numVals变成95,循环会从i=-100一直执行到i=95,需要读取196个整数,远超过你实际输入的数量,程序会一直等待输入,永远走不到循环外的换行代码。
  2. 循环起始与次数错误:循环从i=-100开始完全没有意义,你需要循环的次数是初始读取的numVals值,而非无意义的范围。

修复后的代码

import java.util.Scanner;

public class AngleBrackets {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      int count = scnr.nextInt(); // 保存要读取的整数数量,后续不再修改

      // 循环count次,每次读取一个整数并输出
      for(int i = 0; i < count; i++) {
         int currentNum = scnr.nextInt(); // 用单独变量存储每次读取的整数
         System.out.print("<" + currentNum + ">");
      }
      System.out.println(); // 循环结束后添加末尾换行
   }
}

修复说明

  • 用count变量保存初始读取的整数数量,避免在循环中被覆盖,确保循环次数准确。
  • 循环从i=0开始,执行count次,刚好读取指定数量的整数。
  • 每次读取的整数用单独的currentNum变量存储,不会干扰计数逻辑。
  • 循环外的System.out.println()会在所有整数输出完成后执行,完美添加末尾换行符。

测试时输入2 95 60,程序会输出<95><60>并自动换行,完全符合作业要求。

内容的提问来源于stack exchange,提问作者cmc29

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:52:14