You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ja/2-js-basics/3-making-decisions/README.md

10 KiB

JavaScriptの基本: 判断をする

JavaScript Basics - Making decisions

スケッチノート: Tomomi Imura

講義前のクイズ

講義前のクイズ

判断を行い、コードの実行順序を制御することで、コードを再利用可能で堅牢なものにすることができます。このセクションでは、JavaScriptでデータフローを制御するための構文と、Booleanデータ型と組み合わせた際の重要性について説明します。

Making Decisions

🎥 上の画像をクリックすると、判断についての動画が再生されます。

このレッスンはMicrosoft Learnで受講できます!

Booleanの簡単な復習

Booleanはtrueまたはfalseの2つの値しか持ちません。Booleanは、特定の条件が満たされた場合にどのコードを実行するかを判断するのに役立ちます。

Booleanをtrueまたはfalseに設定する方法は以下の通りです:

let myTrueBool = true
let myFalseBool = false

Booleanは、イギリスの数学者、哲学者、論理学者であるジョージ・ブール18151864にちなんで名付けられました。

比較演算子とBoolean

演算子は条件を評価し、比較を行うことでBoolean値を生成します。以下はよく使用される演算子の一覧です。

記号 説明
< より小さい: 左側の値が右側より小さい場合にtrueを返します 5 < 6 // true
<= 以下: 左側の値が右側以下の場合にtrueを返します 5 <= 6 // true
> より大きい: 左側の値が右側より大きい場合にtrueを返します 5 > 6 // false
>= 以上: 左側の値が右側以上の場合にtrueを返します 5 >= 6 // false
=== 厳密な等価性: 左右の値が等しく、かつ同じデータ型の場合にtrueを返します 5 === 6 // false
!== 不等価: 厳密な等価性演算子が返す値の逆のBoolean値を返します 5 !== 6 // true

ブラウザのコンソールでいくつかの比較を書いてみて、返されるデータに驚くことがあるか確認してください。

If文

If文は、条件がtrueの場合にブロック内のコードを実行します。

if (condition) {
  //Condition is true. Code in this block will run.
}

条件を形成するために論理演算子がよく使用されます。

let currentMoney;
let laptopPrice;

if (currentMoney >= laptopPrice) {
  //Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
}

If..Else文

else文は、条件がfalseの場合にブロック内のコードを実行します。if文と組み合わせて使用することができますが、必須ではありません。

let currentMoney;
let laptopPrice;

if (currentMoney >= laptopPrice) {
  //Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
} else {
  //Condition is false. Code in this block will run.
  console.log("Can't afford a new laptop, yet!");
}

このコードと以下のコードをブラウザのコンソールで実行して理解を深めてください。currentMoneylaptopPrice変数の値を変更して、console.log()の結果を変えてみましょう。

Switch文

switch文は、異なる条件に基づいて異なるアクションを実行するために使用されます。switch文を使用して、実行するコードブロックを選択します。

switch (expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
  // code block
}
// program using switch statement
let a = 2;

switch (a) {
  case 1:
    a = "one";
    break;
  case 2:
    a = "two";
    break;
  default:
    a = "not found";
    break;
}
console.log(`The value is ${a}`);

このコードと以下のコードをブラウザのコンソールで実行して理解を深めてください。変数aの値を変更して、console.log()の結果を変えてみましょう。

論理演算子とBoolean

判断には複数の比較が必要な場合があり、論理演算子を使ってBoolean値を生成することができます。

記号 説明
&& 論理AND: 2つのBoolean式を比較します。両方がtrueの場合のみtrueを返します (5 > 6) && (5 < 6 ) //片方はfalse、もう片方はtrue。結果はfalse
|| 論理OR: 2つのBoolean式を比較します。片方でもtrueの場合にtrueを返します (5 > 6) || (5 < 6) //片方はfalse、もう片方はtrue。結果はtrue
! 論理NOT: Boolean式の値を反転して返します !(5 > 6) // 5は6より大きくないが、"!"はtrueを返します

論理演算子を使った条件と判断

論理演算子は、if..else文の条件を形成するために使用できます。

let currentMoney;
let laptopPrice;
let laptopDiscountPrice = laptopPrice - laptopPrice * 0.2; //Laptop price at 20 percent off

if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice) {
  //Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
} else {
  //Condition is true. Code in this block will run.
  console.log("Can't afford a new laptop, yet!");
}

否定演算子

これまでにif...else文を使って条件付きロジックを作成する方法を見てきました。ifに入るものはすべてtrueまたはfalseに評価される必要があります。!演算子を使用することで、式を反転(否定)することができます。以下のようになります:

if (!condition) {
  // runs if condition is false
} else {
  // runs if condition is true
}

三項演算子

if...elseは条件ロジックを表現する唯一の方法ではありません。三項演算子と呼ばれるものを使用することもできます。その構文は以下のようになります:

let variable = condition ? <return this if true> : <return this if false>

以下はより具体的な例です:

let firstNumber = 20;
let secondNumber = 10;
let biggestNumber = firstNumber > secondNumber ? firstNumber : secondNumber;

このコードを数回読んでみてください。これらの演算子がどのように動作しているか理解できますか?

上記のコードは以下を意味します:

  • firstNumbersecondNumberより大きい場合
  • firstNumberbiggestNumberに代入する
  • そうでない場合はsecondNumberを代入する。

三項演算子は以下のコードを簡潔に書く方法です:

let biggestNumber;
if (firstNumber > secondNumber) {
  biggestNumber = firstNumber;
} else {
  biggestNumber = secondNumber;
}

🚀 チャレンジ

まず論理演算子を使ってプログラムを書き、その後三項演算子を使って書き直してください。どちらの構文が好みですか?


講義後のクイズ

講義後のクイズ

復習と自己学習

利用可能な多くの演算子についてさらに学ぶには、MDNを参照してください。

Josh Comeauの素晴らしい演算子検索ツールを試してみてください!

課題

Operators


免責事項:
この文書はAI翻訳サービスCo-op Translatorを使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解釈について、当社は責任を負いません。