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

