代入演算子である = を使った演算には、色々なバリエーションがあります。
ここでは色々な代入演算を実際におこなってみて、使い慣れておきましょう。
動かしてみよう
色々な代入演算子の実行結果を表示するサンプルコードを用意しました。
実行ボタンを押して、実行してみてください。
実行できましたか。
処理のイメージがわかないようであれば、変数input, a の値を色々かえてみて実行してみてください。
なお上記サンプルにおいて、printfの前に x = input を都度かいているのは、x の値を毎回 10 に戻すためです。
では、解説に進みましょう。
解説
代入演算子の基本構文は下記です。
左辺(変数) 代入演算子 右辺(変数または数値);
基本構文だけみても少しわかりにくいですね。
具体例として書くと、x += a; や x += 2; のような感じになります。
= の直前に + や – などの他の演算子を付与するような使い方をします。
なお、右辺には数値が使えますが、左辺には数値が使えません。
使用時には注意しましょう。
代入演算子は『左辺の変数に対して右辺を作用させて、左辺の変数を上書きする』という動作をします。
演算結果で上書きする、というのがポイントです。
代入演算子には下表のように様々な種類があります。
代入演算 | 等価な記述 | 意味 |
---|---|---|
x += a | x = x + a | x に a を足す |
x -= a | x = x – a | x から a を引く |
x *= a | x = x * a | x に a を掛ける |
x /= a | x = x / a | x を a で割る |
x %= a | x = x % a | x / a の剰余 |
代入演算 | 等価な記述 | 意味 |
---|---|---|
x <<= a | x = x << a | x を a だけ左シフト |
x >>= a | x = x >> a | x を a だけ右シフト |
x &= a | x = x & a | x と a の論理積 |
x |= a | x = x | a | x と a の論理和 |
x ^= a | x = x ^ a | x と a の排他的論理和 |
算術演算やビット演算の演算子に = を付与することで、代入演算子となっていますね。
算術演算とビット演算をおさえていれば、代入演算も覚えやすいと思います。
なお、さきほどの表で書いてあるとおり、代入演算子には代入演算子を用いない等価な記述が必ず存在します。
なので、慣れないうちは無理に代入演算子を使用しなくとも問題はありません。
徐々に使い慣れていけばいいかと思います。
なお、個人的には x = x + a; だと x が2度でてきて冗長だと思うので、x += a; と書いた方がスマートだと思います。
つまり、かっこいい。
(機能的にはどっちも一緒です。)
まとめ
まとめです。
- 算術演算子やビット演算子に = をつけることで、代入演算子になります。
- 現在値をもとに、新たな値へ変数を更新するような挙動となります。
- 右辺には変数や数値が使えますが、左辺には変数しか使えません。
- 代入演算子を使わなくても困ることはありませんが、使えるとかっこいい。(個人の見解です。)
以上です。
ではまた。