💭
【再帰】三項演算子 ?:
基本構文
条件 ? 真の場合の値 : 偽の場合の値
動作の仕組み
条件が true の場合、? の後の値が返される
条件が false の場合、: の後の値が返される
prevValue === 0 ? 1 : 0 の解釈
- prevValue === 0 が条件部分です。
- もし prevValue が 0 と等しければ(条件が true)、? の後の 1 が返されます。
- そうでなければ(条件が false、つまり prevValue が 0 でない場合)、: の後の 0 が返されます。
この式は以下の if-else 文と同等
let newValue;
if (prevValue === 0) {
newValue = 1;
} else {
newValue = 0;
}
使用例
prevValue が 0 の場合、式は 1 を返します(0 を 1 に変換)。
prevValue が 1 の場合、式は 0 を返します(1 を 0 に変換)。
この三項演算子の使用は、0 と 1 を交互に入れ替える(反転させる)ための簡潔な方法。
// 三項演算子の基本構文
// 条件 ? 真の場合の値 : 偽の場合の値
// 例1: 数値が正か負かを判断
let number = 5;
let result = number > 0 ? "正の数" : "負の数または0";
console.log(result); // 出力: "正の数"
// 例2: 偶数か奇数かを判断
let isEven = (num: number) => num % 2 === 0 ? "偶数" : "奇数";
console.log(isEven(4)); // 出力: "偶数"
console.log(isEven(7)); // 出力: "奇数"
// 例3: 値の反転(0と1の入れ替え)
let invertValue = (val: number) => val === 0 ? 1 : 0;
console.log(invertValue(0)); // 出力: 1
console.log(invertValue(1)); // 出力: 0
// 元のコードの該当部分
let prevValue = 0; // または 1
let newValue = prevValue === 0 ? 1 : 0;
console.log(newValue); // prevValueが0の場合は1、1の場合は0を出力
Discussion