- @ThothChildren
- 2018.10.25
- PV 201
単純なif分岐をなくすコードを書きたい
ー 概要 ー
非常にシンプルなif分による分岐をなくすコードの書き方についてまとめます.組み込みやその他最適化などにおいて有用な場合があります.
この章を学ぶ前に必要な知識
条件
- 目的によって幾らか入力、出力に条件あり
効果
- シンプルなif文分岐をなくし別の書き方にします
ポイント
- 条件文を評価した値が0または1になることを利用します
解 説
単純なif分岐をなくすコードを書く方法についてまとめます.
if文を書かずにシンプルな条件分岐は基本的に
大小比較など評価値が1または0を返すことを利用します.
例えば、
(a < 500)は500未満の時は1、そうでないときは0になります.これを使って数え上げや0代入などを行います.
以下では二つのケースを紹介します.
・閾値以内以上のときにカウントアップ
・閾値以内以上のときに0を代入 | 単純なif分岐をなくすコードを書きたい | ||
1.閾値以下以上のときにカウントアップ | |||
1.1.通常の書き方 | |||
C++
| 通常のコードの書き方
閾値以下または以内の場合にカウントアップするコードです | ||
1.2.if文なしの書き方 | |||
C++
| if文を使用しない書き方
閾値以下または以内の場合にカウントアップするコードです. | ||
2.閾値以上以下の場合は0にする | |||
2.1.通常の書き方 | |||
C++
| 通常の書き方
閾値以内以下のときは0にするコードサンプルです. | ||
2.2.if文なしの書き方 | |||
C++
| if文を使わない書き方.
閾値以内以下のときに0にするコードサンプルです. | ||
上記のような評価値の値を計算に使用することでif文をなくすことができます.
これによって必ずとは限りませんが高速化や最適化を改善することができることがあります. | まとめ |
この章を学んで新たに学べる
Comments