※追記
コメントありがとうございます。とりあえず、qiita書くために例を書いただけで、実際の処理などは確認していませんでした。次からはきちんと確認するようにします。すみません。
はじめに
今回はコードを書いてて、自分にとって気持ちの良いコードが書けたのでなんとなく記事にしてみました。
今回の記事ではインクリメントに関する知識を事前に備えていて欲しいです。デクリメントは、主旨が異なるので触れませんが似たようなものです。
どれも利点はあるのでどれが良いとかはその都度変わってくると思います。
先に言うと私が今回欲しかったのは例3のものです。
また、処理速度に関することは何も考えていません。
コード内容
do-whileループ内で0~60を繰り返してほしいとします。
例1
大体が最初こういったコードを書くと思います。
ここでは「{}」の中では一つの処理しかしていないですが、それぞれで複数の処理を行うことを想定した場合はこの書き方が一番堅実だと思います。
static int timer = 0;
if(timer < 60)
{
++timer;
}
else
{
timer = 0;
}
例2
ここでは例1と違い、ただループ用の変数としてtimerを加算し、実際の処理は別空間で行うなどといった場合に使うと思います。
また、コメントアウトで書きましたが、このような形でelseにて複数の処理は特定の場合においてできます。
static int timer = 0;
timer < 60 ? ++timer : timer = 0;
// timer < 60 ? ++timer : timer = 0, std::cout << "test" << std::endl;
例3
そんなことより自分が気持ちよくなってしまったコードがこれです。
もうインクリメントとかいうのif文の中で行おうっていうものです。
自分はこの{}内でオプション画面にてSE調整のための確認SEの再生を行わせています。
static int timer = 0;
if(++timer > 60)
{
// fujitanozomuさんのコメントのようにここでtimerが61になります。
timer = 0;
}
最後に
…記事を書き終えた上で言わせてもらえるのであれば言わせてもらいたいのですが…本当にただの自己満です。最後まで読んでくださりありがとうございます。