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

新手求助:如何缩短项目中重复的条件判断硬编码代码?

简化重复硬编码的条件判断

首先,我注意到你的代码里有大量重复逻辑——每个if判断都是检查spins的区间,然后执行几乎一样的textSize()和text()调用,唯一的区别是显示的文本内容。这种重复代码完全可以通过提取规律+使用数组来简化,新手也能快速上手!

第一步:找出规律

观察你的代码:

  • spins的区间是每3个数一组:3-5、6-8、9-11、12-14、15-17
  • 对应的文本依次是:"H" → "HA" → "HAP" → "HAPP" → "HAPPY",也就是从短到长逐步拼接的字符串

第二步:用数组存储文本

把所有要显示的文本放到一个字符串数组里,这样我们可以通过索引直接获取对应内容:

// 把所有文本按顺序存起来,索引0对应第一个区间,索引4对应最后一个
String[] happyTexts = {"H", "HA", "HAP", "HAPP", "HAPPY"};

第三步:计算对应索引

我们可以通过数学计算,把spins的值转换成数组的索引:

  • 先把spins的起始值(3)减去,得到spins - 3,这样3→0,6→3,15→12
  • 然后做整数除法除以3,得到0、1、2、3、4,正好对应数组的索引:
    • 3-5 → (3-3)/3=0,(5-3)/3=0(整数除法会舍去小数部分)
    • 6-8 → (6-3)/3=1,依此类推

最终简化后的代码

把这些逻辑整合起来,代码就变得非常简洁了:

String[] happyTexts = {"H", "HA", "HAP", "HAPP", "HAPPY"};

// 先判断spins是否在有效范围内,避免数组越界
if (spins >= 3 && spins <= 17) {
    int textIndex = (spins - 3) / 3;
    textSize(40);
    text(happyTexts[textIndex], 20, 40);
}

额外说明

  • 这样修改后,代码的可读性和可维护性都提升了——如果以后要修改文本内容或者调整区间,只需要修改数组或者计算逻辑,不用改一堆if判断
  • 整数除法的特性在这里刚好帮我们把一个区间的数值映射到同一个索引,非常适合这种分组场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:30:02