LoginSignup
0
0

More than 5 years have passed since last update.

当たり前だけど気持ち良く書けたインクリメントとif文

Last updated at Posted at 2018-12-05

※追記
コメントありがとうございます。とりあえず、qiita書くために例を書いただけで、実際の処理などは確認していませんでした。次からはきちんと確認するようにします。すみません。

はじめに

今回はコードを書いてて、自分にとって気持ちの良いコードが書けたのでなんとなく記事にしてみました。

今回の記事ではインクリメントに関する知識を事前に備えていて欲しいです。デクリメントは、主旨が異なるので触れませんが似たようなものです。

どれも利点はあるのでどれが良いとかはその都度変わってくると思います。
先に言うと私が今回欲しかったのは例3のものです。

また、処理速度に関することは何も考えていません。

コード内容

do-whileループ内で0~60を繰り返してほしいとします。

例1

大体が最初こういったコードを書くと思います。

ここでは「{}」の中では一つの処理しかしていないですが、それぞれで複数の処理を行うことを想定した場合はこの書き方が一番堅実だと思います。

A.cpp
static int timer = 0;
if(timer < 60)
{
    ++timer;
}
else
{
    timer = 0;
}

例2

ここでは例1と違い、ただループ用の変数としてtimerを加算し、実際の処理は別空間で行うなどといった場合に使うと思います。

また、コメントアウトで書きましたが、このような形でelseにて複数の処理は特定の場合においてできます。

B.cpp
static int timer = 0;
timer < 60 ? ++timer : timer = 0;
// timer < 60 ? ++timer : timer = 0, std::cout << "test" << std::endl;

例3

そんなことより自分が気持ちよくなってしまったコードがこれです。
もうインクリメントとかいうのif文の中で行おうっていうものです。

自分はこの{}内でオプション画面にてSE調整のための確認SEの再生を行わせています。

C.cpp
static int timer = 0;
if(++timer > 60)
{
    // fujitanozomuさんのコメントのようにここでtimerが61になります。
    timer = 0;
}

最後に

…記事を書き終えた上で言わせてもらえるのであれば言わせてもらいたいのですが…本当にただの自己満です。最後まで読んでくださりありがとうございます。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0