削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
287 行
:気をつけたいのは、<code>"真"</code> と <code>"偽"</code> は、<code>"真";</code> と <code>"偽";</code> ではない点です。
:また、<syntaxhighlight lang=rust inline>let msg = </syntaxhighlight>の文末の<code>};</code> のセミコロンも忘れがちです。
 
=== 反復 ===
==== loop と break の値 ====
Rest には、永久ループのためのキーワード '''loop''' が用意されています。
;[https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=9349b3eff79e311c70c87d20942cf8f2 loop-and-break.rs]:<syntaxhighlight lang=rust>
fn main() {
let mut i = 0;
let result = loop {
if i > 3 {
break 100;
}
println!("i = {}", i);
i += 1;
};
println!("result = {}", result);
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
i = 0
i = 1
i = 2
i = 3
result = 100
</syntaxhighlight>
:loopも値を返せる式です。
::と言ってもloop自体は無限ループなので、break文のオペランドが値になります。
 
==== continue ====
ループのフローコントロール文にもう一つ '''continue''' があります。
;[https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=49f7412cec92162b9d77881e08f43138 continue.rs]:<syntaxhighlight lang=rust highlight=9 line>
fn main() {
let mut i = 0;
let result = loop {
if i > 3 {
break 100;
}
println!("i = {}", i);
i += 1;
};
println!("result = {}", result);
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
i = 1
i = 3
i = 5
i = 7
i = 9
result = 100
</syntaxhighlight>
:continue は、ループの先頭に戻ります。
 
== 脚註 ==