🚀

値の条件比較を三項演算子と if を使わずに実装する方法

2025/01/31に公開

PythonJavaScript で三項演算子とifを使わずに ab の代償比較をする実装

いくつか方法は考えられるが、PythonmatchJavascript であれば switch を利用する。この際、条件分岐として sign 関数を用いて正負によって値を分岐させると便利である。

Python

import numpy as np
def no_ifs_no_buts(a, b):
    sign = np.sign(a-b)
    match sign:
        case -1:
            return f'{a} is smaller than {b}'
        case 0:
            return f'{a} is equal to {b}'
        case 1:
            return f'{a} is greater than {b}'

JavaScript

const noIfsNoButs =  (a,b) => {
  switch (Math.sign(a-b)) {
    case 1: return `${a} is greater than ${b}`;
    case -1:return `${a} is smaller than ${b}`;
    case 0: return `${a} is equal to ${b}`;
  }
}

Discussion