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

Rust中for循环的预期行为疑问:为何终止于9而非10?

关于Rust for循环终止于x=9的疑问解答

嘿,这完全是Rust里的预期行为哦!

你遇到的问题核心在于Rust中范围表达式的规则:

  • 当你使用a..b这种写法时,它表示的是左闭右开区间——也就是包含起始值a,但不包含结束值b。所以如果你的循环是类似for x in 1..10这样的写法,x会依次取1、2、…、9,自然不会执行到x=10的情况。
  • 如果想要让循环包含10这个值,你需要使用闭区间范围的写法:a..=b,它会同时包含起始值和结束值。比如把循环改成for x in 1..=10,这样x就会从1一直运行到10,满足你的预期。

举个实际的代码例子对比一下:

// 左闭右开区间:输出1到9
for x in 1..10 {
    println!("{}", x);
}

// 闭区间:输出1到10(包含10)
for x in 1..=10 {
    println!("{}", x);
}

这种设计其实挺常见的,很多编程语言的范围逻辑都采用左闭右开,这样计算区间内的元素个数会很直观——比如1..10的元素个数就是10-1=9个,和实际输出的数量一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:02:27