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

VBA中For循环步长3但计数器逐次加1实现每三年数值增长

解决每三年增长数值且逐年输出的问题

嘿,你的需求完全清晰,这事儿好办!核心思路就是不用step=3的循环,而是让计数器(年龄)逐年递增,通过判断当前年龄是否到达增长节点来更新零花钱。

举个Python的例子,直接实现你要的效果:

# 初始化参数
start_age = 5
current_allowance = 10
target_age = 10

# 逐年遍历年龄
for age in range(start_age, target_age + 1):
    # 判断是否到了需要翻倍的节点(除了起始年龄本身)
    if (age - start_age) % 3 == 0 and age != start_age:
        current_allowance *= 2
    # 输出当前年龄对应的零花钱
    print(f"{age}岁时零花钱为{current_allowance}")

运行这段代码,输出结果完全符合你的要求:

5岁时零花钱为10
6岁时为10
7岁时为10
8岁时为20
9岁时为20
10岁时为20

思路解释

  1. 用普通的For循环遍历每一个年龄,计数器age每次自动+1,完美对应逐年的年龄变化;
  2. 通过(age - start_age) % 3 == 0判断当前年龄是否是起始年龄之后的第3、6、9...年(也就是需要增长的节点);
  3. 额外加age != start_age是为了避免起始年龄就触发翻倍(毕竟初始值已经是10了);
  4. 没有到达增长节点时,保持当前零花钱数值不变,直接输出即可。

如果用JavaScript实现,逻辑是一样的:

let startAge = 5;
let currentAllowance = 10;
const targetAge = 10;

for (let age = startAge; age <= targetAge; age++) {
    if ((age - startAge) % 3 === 0 && age !== startAge) {
        currentAllowance *= 2;
    }
    console.log(`${age}岁时零花钱为${currentAllowance}`);
}

这种方法不管你起始年龄是多少、目标年龄多大,都能灵活适配,完全满足“计数器每次递增1,每三年增长数值”的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:32:52