削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎制御構造: if let を 分岐 に移動
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎反復: {{コラム|Rustにdo-whileはありません}}
タグ: 2017年版ソースエディター
471 行
</syntaxhighlight>
 
===== while let =====
;[https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=0764d8389e3afc0854b4223b8db5a32b while-let.rs]:<syntaxhighlight lang=rust>
fn main() {
494 行
</syntaxhighlight>
 
===== while let again =====
;[https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=6b252d13f67df88f533e55dab5d3397c while-let-again.rs]:<syntaxhighlight lang=rust>
fn main() {
510 行
x = 1
</syntaxhighlight>
 
{{コラム|Rustにdo-whileはありません|2=
Rustにdo-whileはありません。while の条件式に do のブロックを詰め込むことで同じことが実現できます。
;[https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=534d7cfaf805c7e8d99d4c1ba95ed3ab pseudo-do-while.rs]:<syntaxhighlight lang=rust highlight=6 line>
fn main() {
let mut i = 100;
while {
println!("{}", i);
i += 1;
i < 10
} {}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
100
</syntaxhighlight>
:whileの条件式が省略されたかのように見えますが、4,5,6行目を含むブロックが、while の条件式となり値はブロックの最後の6行目の式の値です。
:7行目の {} がループ本体です。
}}
 
==== for ====