どうも、ちょげ(@chogetarou)です。
配列(array)をループする方法を紹介します。
方法

配列(array)をループする方法は、3つあります。
要素のみをループ
1つ目は、要素のみをループする方法です。
まず、for文のループ対象(inの右)に、先頭に「&」を付けた配列を指定します。
そして、for文にループ処理を記述します。
ループ処理では、ループ変数で配列(array)の要素を取得します。
//array=対象の配列
for item in &array {
//ループ処理
//ループ変数「item」で配列の要素を取得
}
上記のforループは、呼び出した配列(array)の要素のみをループします。
使用例
fn main(){
let num: [&str; 5] = ["one", "two", "three", "four", "five"];
for item in &num {
println!("{:?}", item);
}
}
出力:
"one"
"two"
"three"
"four"
"five"
インデックスのみをループ
2つ目は、インデックスのみをループする方法です。
まず、for文のループ対象(inの右)に、0から配列から呼び出したlen()までの範囲を指定します。
for文のループ処理を記述します。
ループ処理では、ループ変数で配列のインデックスを取得します。
//arr=対象の配列
for index in 0..arr.len() {
//ループ処理
//ループ変数「index」で配列のインデックスを取得
}
上記のforループは、対象の配列(array)のインデックスのみをループします。
使用例
fn main(){
let num: [i32; 5] = [1, 2, 3, 4, 5];
for index in 0..num.len() {
println!("{}: {:?}", index, num[index]);
}
}
出力:
0: 1
1: 2
2: 3
3: 4
4: 5
インデックスと値を一緒にループ
3つ目は、インデックスと値を一緒にループする方法です。
まず、for文のループ変数を()内に2つカンマ区切りで指定します。
次に、for文のループ対象(inの右)に、配列からiter()、iter()からenumerate()を呼び出した結果を指定します。
そして、for文のループ処理を記述します。
ループ処理では、左のループ変数でインデックス、右のループ変数で要素を取得します。
//arr=対象の配列
for (index, item) in arr.iter().enumerate() {
//ループ処理
//ループ変数「index」でインデックス、ループ変数「item」で要素を取得
}
上記のforループは、対象の配列(array)の要素をインデックス付きでループします。
使用例
fn main(){
let num: [&str; 5] = ["one", "two", "three", "four", "five"];
for (index, item) in num.iter().enumerate() {
println!("{:?}: {:?}", index, item);
}
}
出力:
0: "one"
1: "two"
2: "three"
3: "four"
4: "five"
まとめ
配列(array)をループする方法は、次の3つです。
- 要素のみをループする方法
for item in &num { ループ処理 }
- インデックスのみをループする方法
for index in 0..arr.len() { ループ処理}
- インデックスと要素を一緒にループする方法
for (index, item) in arr.iter().enumerate() { ループ処理 }
コメント