年度价格增长循环实现遇阻:嵌套循环问题求助
解决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(); } }
代码细节解释
- 输入处理:用
Scanner类读取用户输入的初始价格、年度涨幅、起止年份,确保数据准确获取。 - 循环逻辑:
- 用
for循环从起始年份遍历到结束年份(注意循环条件是year <= endYear,这样会包含结束年份) - 每轮循环先输出当前年份的价格,再把价格加上年度涨幅,为下一年的计算做准备
- 用
- 为什么不用嵌套循环:你的需求里没有需要分层遍历的场景(比如年份下再遍历月份),嵌套循环反而会把简单的逻辑复杂化,单循环完全能覆盖逐年计算的需求。
测试示例输入:
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
相关产品推荐
相关产品推荐

