循环控制 #
一、break语句 #
1.1 基本用法 #
break立即退出当前循环:
julia
for i in 1:10
i == 5 && break
println(i)
end
1.2 查找元素 #
julia
function find_first(arr, value)
for (i, x) in enumerate(arr)
x == value && return i
end
return nothing
end
find_first([1, 2, 3, 4, 5], 3)
find_first([1, 2, 3, 4, 5], 10)
1.3 while循环中的break #
julia
i = 1
while true
println(i)
i += 1
i > 5 && break
end
二、continue语句 #
2.1 基本用法 #
continue跳过当前迭代,继续下一次:
julia
for i in 1:10
i % 2 == 0 && continue
println(i)
end
2.2 过滤元素 #
julia
for x in [1, -2, 3, -4, 5]
x < 0 && continue
println(x)
end
2.3 跳过特定值 #
julia
for x in 1:20
x % 3 == 0 && continue
x % 5 == 0 && continue
println(x)
end
三、return语句 #
3.1 函数返回 #
julia
function find_value(arr, predicate)
for x in arr
predicate(x) && return x
end
return nothing
end
find_value([1, 2, 3, 4, 5], x -> x > 3)
3.2 提前退出 #
julia
function process(arr)
for x in arr
x < 0 && return "Negative found"
end
return "All positive"
end
process([1, 2, 3])
process([1, -2, 3])
四、嵌套循环控制 #
4.1 标签语法 #
使用标签控制嵌套循环:
julia
outer: for i in 1:3
for j in 1:3
if i == 2 && j == 2
break outer
end
println("($i, $j)")
end
end
4.2 continue标签 #
julia
outer: for i in 1:3
for j in 1:3
if j == 2
continue outer
end
println("($i, $j)")
end
end
4.3 实际应用 #
julia
function find_pair(arr, target)
outer: for i in 1:length(arr)-1
for j in i+1:length(arr)
if arr[i] + arr[j] == target
return (i, j)
end
end
end
return nothing
end
find_pair([1, 2, 3, 4, 5], 7)
五、@goto和@label #
5.1 基本用法 #
julia
i = 0
@label start
i += 1
println(i)
i < 5 && @goto start
5.2 模拟循环 #
julia
i = 1
@label loop
println(i)
i += 1
i <= 5 && @goto loop
六、实践练习 #
6.1 练习1:查找素数 #
julia
function find_primes(n)
primes = Int[]
for i in 2:n
is_prime = true
for p in primes
p * p > i && break
i % p == 0 && (is_prime = false; break)
end
is_prime && push!(primes, i)
end
return primes
end
find_primes(50)
6.2 练习2:矩阵搜索 #
julia
function search_matrix(mat, value)
for i in axes(mat, 1)
for j in axes(mat, 2)
mat[i, j] == value && return (i, j)
end
end
return nothing
end
mat = [1 2 3; 4 5 6; 7 8 9]
search_matrix(mat, 5)
search_matrix(mat, 10)
6.3 练习3:验证输入 #
julia
function get_valid_input(prompt, validator)
while true
print(prompt)
input = readline()
try
value = parse(Int, input)
validator(value) && return value
println("Invalid value, try again")
catch
println("Please enter a number")
end
end
end
age = get_valid_input("Enter your age (1-150): ", x -> 1 <= x <= 150)
七、总结 #
本章我们学习了:
- break:退出循环
- continue:跳过当前迭代
- return:函数返回
- 循环标签:控制嵌套循环
- @goto/@label:跳转语句
接下来让我们学习Julia的异常处理!
最后更新:2026-03-27