概要: このチュートリアルでは、TypeScript のif...else
文について学びます。
TypeScript if文
if
文は、条件に基づいて文を実行します。条件が真の場合、if
文はその本体内の文を実行します。
if(condition) {
// if-statement
}
Code language: JavaScript (javascript)
例えば、以下の文は、counter
変数の値がmax
定数の値より小さい場合に、counter
変数の値を増やす方法を示しています。
const max = 100;
let counter = 0;
if (counter < max) {
counter++;
}
console.log(counter); // 1
Code language: JavaScript (javascript)
出力
1
この例では、counter
変数は0から始まるため、max
定数より小さくなります。式counter < max
はtrue
と評価されるため、if
文はcounter++
文を実行します。
counter
変数を100
に初期化してみましょう。
const max = 100;
let counter = 100;
if (counter < max) {
counter++;
}
console.log(counter); // 100
Code language: JavaScript (javascript)
出力
100
この例では、式counter < max
はfalse
と評価されます。if
文はcounter++
文を実行しません。そのため、出力は100です。
TypeScript if…else文
if
文の条件がfalse
と評価された場合に他の文を実行したい場合は、if...else
文を使用できます。
if(condition) {
// if-statements
} else {
// else statements;
}
Code language: JavaScript (javascript)
if..else
文の使用例を以下に示します。
const max = 100;
let counter = 100;
if (counter < max) {
counter++;
} else {
counter = 1;
}
console.log(counter);
Code language: JavaScript (javascript)
出力
1
この例では、式counter < max
はfalse
と評価されるため、else
分岐の文が実行され、counter
変数が1
にリセットされます。
三項演算子 ?
実際には、単純な条件がある場合は、if...else
文ではなく三項演算子?:
を使用して、次のようにコードを短くすることができます。
const max = 100;
let counter = 100;
counter < max ? counter++ : counter = 1;
console.log(counter);
Code language: JavaScript (javascript)
TypeScript if…else if…else文
複数の条件に基づいてコードを実行したい場合は、if...else if...else
文を使用できます。
if…else if…else
文には、1つ以上のelse if
分岐を持つことができますが、else
分岐は1つだけです。
例えば
let discount: number;
let itemCount = 11;
if (itemCount > 0 && itemCount <= 5) {
discount = 5; // 5% discount
} else if (itemCount > 5 && itemCount <= 10) {
discount = 10; // 10% discount
} else {
discount = 15; // 15%
}
console.log(`You got ${discount}% discount. `)
Code language: JavaScript (javascript)
出力
You got 15% discount.
この例では、if...else if...else
文を使用して、アイテムの数に基づいて割引を決定しています。
アイテム数が5以下の場合、割引は5%です。if
分岐の文が実行されます。
アイテム数が10以下の場合、割引は10%です。else if
分岐の文が実行されます。
アイテム数が10より大きい場合、割引は15%です。else
分岐の文が実行されます。
この例では、アイテム数は常に0より大きいと仮定しています。しかし、アイテム数が0より小さいか10より大きい場合、割引は15%になります。
コードをより堅牢にするには、else
分岐の代わりに別のelse if
を使用することができます。
let discount: number;
let itemCount = 11;
if (itemCount > 0 && itemCount <= 5) {
discount = 5; // 5% discount
} else if (itemCount > 5 && itemCount <= 10) {
discount = 10; // 10% discount
} else if (itemCount > 10) {
discount = 15; // 15%
} else {
throw new Error('The number of items cannot be negative!');
}
console.log(`You got ${discount}% discount. `);
Code language: JavaScript (javascript)
出力
You got 15% discount.
この例では、アイテム数が10より大きい場合、割引は15%です。2番目のelse if
分岐の文が実行されます。
アイテム数が0より小さい場合、else
分岐の文が実行されます。
まとめ
- 条件に基づいてコードを実行するには、
if
文を使用します。 - 条件が偽の場合にコードを実行したい場合は、
else
分岐を使用します。単純なif…else文の代わりに三項演算子?:
を使用するのが良い習慣です。 - 複数の条件に基づいてコードを実行するには、
if else if...else
文を使用します。