Menu
Coddy logo textTech

if-else 文

CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 25/75。

if を使用すると、条件が満たされた場合に特定のコードを実行できますが、条件が満たされない場合に別のコードを実行したい場合はどうすればよいでしょうか?

そのために、else文があります:

let age: i32 = 15;
let status = if age >= 18 {
    "Adult"
} else {
    "Young"
};

上記の例では、age18 より小さいため、elseコードに入り、status には "Young" が保持されます。

else if 文を使用することで、さらに詳細に記述することもできます:

let age: i32 = 68;
let status = if age < 18 {
    "Young"
} else if age >= 18 && age <= 65 {
    "Adult"
} else {
    "Old"
};

ここでは、ageが18未満であるかどうかを確認します。そうでない場合は次の条件に進み、ageが18から65の間であるかどうかを確認します。その条件も満たされない場合は、status"Old"に設定します。

else if 文は、必要な数だけ追加することができます:

if condition1 {
    code;
} else if condition2 {
    code;
} else if condition3 {
    code;
}
...
challenge icon

チャレンジ

初心者

風速を示す数値を入力として受け取り、それを wind という名前の変数に格納するコードが与えられています。

注意:ユーザーから入力を受け取る方法は次のレッスンで学びます。今は最初の数行には触れないでください。

 

あなたのタスクは、以下の条件に基づいて変数 status を初期化することです:

  • wind8 未満の場合は "Calm"
  • wind8 以上 31 以下(8と31を含む)の場合は "Breeze"
  • wind32 以上 63 以下(32と63を含む)の場合は "Gale"
  • それ以外の場合は "Storm"

テストケースを確認して、すべての入力と期待される出力を確認してください

チートシート

if 条件が満たされない場合にコードを実行するには、else を使用します:

let age: i32 = 15;
let status = if age >= 18 {
    "Adult"
} else {
    "Young"
};

複数の条件をチェックするには、else if を使用します:

let age: i32 = 68;
let status = if age < 18 {
    "Young"
} else if age >= 18 && age <= 65 {
    "Adult"
} else {
    "Old"
};

複数の else if ステートメントを連結することができます:

if condition1 {
    code;
} else if condition2 {
    code;
} else if condition3 {
    code;
}

自分で試してみよう

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let wind: i32 = input.trim().parse().unwrap();
    // 下の行を、windに基づいてstatusを割り当てるif-else式に置き換えてください
    let status = "unset";
    
    // 下の行は変更しないでください
    println!("status = {}", status);
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン