0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ChatGPT を使って、Rust言語を勉強します。制御構文 篇

Posted at

質問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; を呼び出すことで、外側のループ全体を終了させます。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?