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

如何精简冗长的if条件判断语句 能否通过动态调整运算符号减少冗余?

简化方案

你这段逻辑可以完全去掉嵌套if,转换为公式计算,比你要求的仅保留外层if的方案更简洁,逻辑完全和原代码一致:

  • 先提取公共计算项delta = ceil(shift * (i / 2)),避免重复计算
  • 将外层判断条件转换为符号系数sign,控制整体加减方向
  • 将x、y的大小比较转换为方向系数,控制对应维度的加减方向
  • 直接通过四则运算得到所有结果

以下是优化后的Python代码:

from math import ceil

# 函数内部逻辑
delta = ceil(shift * (i / 2))
# 外层条件转换为符号系数
sign = 1 if (i % 2 == 1 or i == 0) else -1
# x、y方向的比较结果转换为方向系数
x_dir = 1 if x1 > x else (-1 if x1 < x else 0)
y_dir = 1 if y1 > y else (-1 if y1 < y else 0)
# 直接计算所有结果
ny = y + sign * x_dir * delta
ny1 = y1 + sign * x_dir * delta
nx = x - sign * y_dir * delta
nx1 = x1 - sign * y_dir * delta

return nx, ny, nx1, ny1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:06:04