プログラミングでは、大なり (>) または小なりを使用して値を比較することが必要になることがよくあります。 (<) 演算子。 if ステートメントでもこれらの比較を処理できますが、より効率的で洗練されたアプローチは switch ステートメントを使用することです。
ただし、大なり/小なりクエリに switch ステートメントを使用すると、switch の場合は完全に一致する必要があるため、課題が生じます。 。範囲または間隔を単一のケースとして表現することは、直接サポートされていません。
この制限を克服し、switch ステートメントの効率を活用するには、次のオプションを検討してください:
switch (scrollLeft) { case (scrollLeft < 1000): // do stuff break; case (scrollLeft < 2000): // do stuff break; }
この方法には境界値ごとに個別のケースを作成する必要がありますが、複数レベルの比較には対応していません。
const conditions = [ { from: 0, to: 1000 }, { from: 1000, to: 2000 }, ]; for (let i = 0; i < conditions.length; i++) { const condition = conditions[i]; if (scrollLeft < condition.from) break; if (scrollLeft < condition.to) { // do stuff for condition [i] break; } }
このアプローチでは、配列を使用して条件を保存します。各オブジェクトは範囲を表します。ループは条件を繰り返し、必要な比較を実行します。
一部の環境では、範囲ベースの比較をサポートするカスタム switch ステートメントを使用できます。たとえば、Node.js の場合:
switch (scrollLeft) { case ((scrollLeft < 1000) ? { from: 0, to: 1000 } : null): // do stuff break; case ((scrollLeft < 2000) ? { from: 1000, to: 2000 } : null): // do stuff break; }
最適なソリューションは、比較の数や特定の環境制約などの要因によって異なります。選択のガイドとして、提供されるベンチマーク結果を参照してください。
以上がより大きい/より小さいクエリに switch ステートメントを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。