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

年度价格增长循环实现遇阻:嵌套循环问题求助

解决Mars Bar价格逐年计算的问题

嘿,别发愁啦!其实你这里完全不需要嵌套循环——一个简单的for循环就能轻松搞定这个需求。让我帮你理清楚思路,再给你写个完整的可运行代码示例。

核心思路

我们只需要遍历从起始年份到结束年份的每一年,逐年更新价格并输出即可,根本不需要分层嵌套的循环逻辑。

下面是完整的Java实现代码:

import java.util.Scanner;

public class MarsBarPriceTracker {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 获取用户输入的各项参数
        System.out.print("Enter the current Mars bar price in cents: ");
        int currentPrice = scanner.nextInt();
        
        System.out.print("Enter the expected yearly price increase: ");
        int yearlyRise = scanner.nextInt();
        
        System.out.print("Enter the start year: ");
        int startYear = scanner.nextInt();
        
        System.out.print("Enter the end year: ");
        int endYear = scanner.nextInt();
        
        // 初始化当前价格,避免修改原始输入值
        int price = currentPrice;
        
        // 单循环遍历年份,输出对应价格
        for (int year = startYear; year <= endYear; year++) {
            System.out.printf("Price in %d: %d cents%n", year, price);
            // 输出当前年份价格后,更新为下一年的价格
            price += yearlyRise;
        }
        
        scanner.close();
    }
}

代码细节解释

  1. 输入处理:用Scanner类读取用户输入的初始价格、年度涨幅、起止年份,确保数据准确获取。
  2. 循环逻辑:
    • 用for循环从起始年份遍历到结束年份(注意循环条件是year <= endYear,这样会包含结束年份)
    • 每轮循环先输出当前年份的价格,再把价格加上年度涨幅,为下一年的计算做准备
  3. 为什么不用嵌套循环:你的需求里没有需要分层遍历的场景(比如年份下再遍历月份),嵌套循环反而会把简单的逻辑复杂化,单循环完全能覆盖逐年计算的需求。

测试示例输入:

Enter the current Mars bar price in cents: 90
Enter the expected yearly price increase: 15
Enter the start year: 2006
Enter the end year: 2010

会得到你预期的输出:

Price in 2006: 90 cents
Price in 2007: 105 cents
Price in 2008: 120 cents
Price in 2009: 135 cents
Price in 2010: 150 cents

如果之前被嵌套循环绕晕了,换成这个单循环逻辑应该就能顺利运行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:18:00