在Julia语言的for循环中如何跳过能被500整除的数值?
Julia for循环跳过500整数倍迭代值的实现方案
两种常用实现方式如下:
- 方案1:使用
continue关键字在循环内判断跳过,逻辑直观易读,适合后续可能新增其他跳过规则的场景
实现代码:
n = 10000 result = zeros(n) for i = 1:n # 能被500整除则跳过当前迭代 if i % 500 == 0 continue end result[i] = i end
说明:%是Julia中的取余运算符,i % 500 == 0即代表i是500的整数倍,触发continue后会直接进入下一轮循环,不会执行后续的赋值逻辑。
- 方案2:迭代器层面预先过滤,不需要在循环体内写判断逻辑,代码更简洁
实现代码:
n = 10000 result = zeros(n) # 迭代时直接排除所有500的整数倍 for i in Iterators.filter(x -> x % 500 != 0, 1:n) result[i] = i end
补充说明:如果你的业务场景不需要给被跳过的索引保留0值占位,也可以直接初始化过滤后的结果数组,节省内存开销:
# 直接生成仅包含非500整数倍的结果数组,无空位 result = collect(Iterators.filter(x -> x % 500 != 0, 1:10000))
内容的提问来源于stack exchange,提问作者Mizzle
相关产品推荐
相关产品推荐

