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

自学普林斯顿CS课程遇问题:reverse方法无效果且报赋值未使用警告

问题分析与解决

核心问题

  1. 赋值未使用警告:你在main方法中把reverse返回的结果赋值给samples后,没有对这个变量做任何后续操作(比如播放音频),IDE检测到这个赋值没有实际用途,因此抛出警告。
  2. reverse看似无效:并非reverse方法逻辑错误,而是你没有将处理后的音频数据输出播放,导致看不到/听不到效果。

代码修正

下面是修正后的代码,同时调整了amplify方法使其符合注释里“返回新数组”的设计(原方法直接修改了传入的数组,虽能运行但不符合接口描述):

public class audiocollage {
    // Returns a new array that rescales a[] by a factor of alpha.
    public static double[] amplify(double[] a, double alpha) {
        // 创建新数组,不修改原输入数组
        double[] amplified = new double[a.length];
        for (int i = 0; i < a.length; i++) {
            amplified[i] = a[i] * alpha;
        }
        return amplified;
    }

    // Returns a new array that is the reverse of a[].
    public static double[] reverse(double[] a) {
        double[] b = new double[a.length];
        for (int i = a.length - 1, j = 0; i >= 0; i--, j++) {
            b[j] = a[i];
        }
        return b;
    }

    // Creates an audio collage and plays it on standard audio.
    public static void main(String[] args) {
        double[] samples = StdAudio.read("cow.wav");
        double alpha = 2.0;

        samples = amplify(samples, alpha);
        samples = reverse(samples);
        // 添加播放代码,输出处理后的音频
        StdAudio.play(samples);
    }
}

关键修改说明

  • 给amplify方法新增了amplified数组,避免修改原输入数组,严格遵循方法注释中“返回新数组”的要求。
  • 在main方法末尾添加StdAudio.play(samples);,让处理后的音频数据播放出来,既验证了reverse的效果,也解决了“赋值未使用”的警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:55:23