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

基础Java程序在Pearson MyProgrammingLab无输出 其他IDE运行正常求助

问题原因及修复方案

无输出的核心原因

  • 输出缓冲未主动刷新:你使用System.out.print()输出提示语时没有携带换行符,Java标准库的PrintStream默认采用行缓冲策略,只有遇到换行符、缓冲区满、主动调用flush()时才会将缓冲区内容输出到标准输出流。本地IDE通常做了自动刷新的优化,所以能正常显示,但Pearson MyProgrammingLab的测评环境遵循严格的标准缓冲逻辑,提示语留在缓冲区未输出时,测评程序不会注入预设的测试输入5.5,程序会一直卡在input.nextDouble()的读取步骤,自然不会有后续输出。
  • 入口方法修饰符不符合规范:Java语言规范明确要求程序入口的main方法必须用public修饰,你代码中的main方法没有加public,部分本地JVM实现兼容非public的main方法,但Pearson的类加载逻辑严格遵循规范,找不到符合要求的入口方法时程序根本不会正常执行,也就没有输出。

额外适配要求

平台要求最终面积保留两位小数输出,直接拼接double类型变量会输出多位小数,即使解决了无输出问题也会被判结果不符。

修复后可正常运行的代码(输出内容已按要求翻译为中文)

import java.util.Scanner;

public class Area {
    public static void main (String[] args) {
        Scanner input = new Scanner (System.in);
        System.out.print("请输入边长:");
        // 主动刷新输出缓冲,确保提示语优先输出触发平台注入测试输入
        System.out.flush();
        double s = input.nextDouble();
        double area = (6 * Math.pow(s, 2)) / (4 * Math.tan(Math.PI/6));
        // 格式化输出保留两位小数,匹配平台精度要求
        System.out.printf("正六边形的面积为 %.2f", area);
        input.close();
    }
}

输入5.5时运行输出为:请输入边长:正六边形的面积为 78.59,和预期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:27:03