[Rust]配列(array)をループするには?

Rust

どうも、ちょげ(@chogetarou)です。

配列(array)をループする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(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() { ループ処理 }

コメント

タイトルとURLをコピーしました