質問1: Rust言語の制御構文を教えてください。
回答1:
Rust言語には、以下のような制御構文があります。
1.条件分岐(if-else文)
Rustのif-else文は、他のプログラミング言語と同様に、条件に応じて分岐するために使用されます。基本的な構文は以下のようになります。
if 条件式 {
// 条件式が true の場合に実行される処理
} else {
// 条件式が false の場合に実行される処理
}
また、複数の条件分岐を行う場合は、else if文を使用することができます。
if 条件式1 {
// 条件式1が true の場合に実行される処理
} else if 条件式2 {
// 条件式1が false かつ条件式2が true の場合に実行される処理
} else {
// 条件式1と条件式2が false の場合に実行される処理
}
2.繰り返し(loop、while、for文)
Rustには、3種類の繰り返しを行うための制御構文があります。
・ loop文:無限ループを行うための構文です。ループを抜けるためには、break文を使用します。
loop {
// 無限ループを行う処理
if 条件式 {
break; // ループを抜ける
}
}
・ while文:条件が true の間、繰り返し処理を行うための構文です。
while 条件式 {
// 条件式が true の場合に実行される処理
}
・ for文:コレクションの要素に対して繰り返し処理を行うための構文です。Rustのfor文は、イテレータを使用して要素を繰り返し処理します。
let collection = vec![1, 2, 3, 4, 5];
for element in collection {
// collectionの要素に対して繰り返し処理を行う
}
3.パターンマッチ(match文)
Rustのパターンマッチは、特定のパターンに合致する場合に対応する処理を行うための構文です。基本的な構文は以下のようになります。
match 変数名 {
パターン1 => {
// パターン1に合致する場合に実行される処理
},
パターン2 => {
// パターン2に合致する場合に
質問2: Rust言語の制御構文の使い方を教えてください。
回答2:
・ 条件分岐 (if/else)
・ ループ (loop, while, for)
・ 早期リターン (return)
・ ラベル付きループとジャンプ (loop label, break, continue)
これらを使って、プログラムの制御を行います。
条件分岐
let x = 5;
if x > 10 {
println!("x is greater than 10");
} else if x > 5 {
println!("x is greater than 5");
} else {
println!("x is less than or equal to 5");
}
ループ
loop
let mut counter = 0;
loop {
println!("counter is {}", counter);
counter += 1;
if counter >= 10 {
break;
}
}
while
let mut counter = 0;
while counter < 10 {
println!("counter is {}", counter);
counter += 1;
}
for
let numbers = vec![1, 2, 3, 4, 5];
for number in numbers {
println!("number is {}", number);
}
早期リターン
fn is_even(number: i32) -> bool {
if number % 2 == 0 {
return true;
}
false
}
ラベル付きループとジャンプ
'outer: for x in 0..10 {
'inner: for y in 0..10 {
if x == 5 && y == 5 {
break 'outer;
}
println!("x is {}, y is {}", x, y);
}
}
この例では、外側のループに outer というラベルを付け、内側のループに inner というラベルを付けています。内側のループで (5, 5) の座標に到達すると、外側のループに対して break 'outer; を呼び出すことで、外側のループ全体を終了させます。
質問3: Rust言語の制御構文のサンプルを教えてください。
回答3:
以下に、Rust言語の制御構文のサンプルを示します。
条件分岐
let x = 5;
if x > 10 {
println!("x is greater than 10");
} else if x > 5 {
println!("x is greater than 5");
} else {
println!("x is less than or equal to 5");
}
ループ
loop
let mut counter = 0;
loop {
println!("counter is {}", counter);
counter += 1;
if counter >= 10 {
break;
}
}
while
let mut counter = 0;
while counter < 10 {
println!("counter is {}", counter);
counter += 1;
}
for
Copy code
let numbers = vec![1, 2, 3, 4, 5];
for number in numbers {
println!("number is {}", number);
}
早期リターン
fn is_even(number: i32) -> bool {
if number % 2 == 0 {
return true;
}
false
}
ラベル付きループとジャンプ
'outer: for x in 0..10 {
'inner: for y in 0..10 {
if x == 5 && y == 5 {
break 'outer;
}
println!("x is {}, y is {}", x, y);
}
}
この例では、外側のループに outer というラベルを付け、内側のループに inner というラベルを付けています。内側のループで (5, 5) の座標に到達すると、外側のループに対して break 'outer; を呼び出すことで、外側のループ全体を終了させます。