LoginSignup
1
1

【インクリメント演算子】hoge++ と ++hoge の違いとは

Posted at

目次

この記事は2分ほどで読めます。
1. 問題
2. 解説
3. 結局どちらを使えば良いか

1. 問題

// JavaScriptの場合
let hoge = 10;
console.log(++hoge);
console.log(hoge++);
// Javaの場合
int hoge = 10;
System.out.println(++hoge);
System.out.println(hoge++);

Q: 上記コードを実行したときにどのように表示されるでしょうか?(補足:JavaScriptとJavaの実行結果は同じになります)






考え中・・・






A: 正解は以下のとおりとなります

11
11

2. 解説

  • hoge++と++hogeの挙動の違いを一言で表すと「変動の変数を返すか変動の違いを表すか」です。
  • ++hogeのように++を変数前につけた場合は「変動の変数の中身」を返します
  • 今回の場合「hoge = 10」に1を足した11が返ってくるようになります。
  • hoge++のように++を後ろにつけた場合は「変動の変数の中身」を返します。
  • 今回の場合すでに++hogeで「hoge = 11」になっている中身に対して、さらにhoge++で1を足して12にしようとしています。
    が、「console.log(hoge++)」つまり「console.log(変動のhogeの中身)」を返すので11が表示される、という挙動になります。(System.out.println()の場合も同様)
  • これはデクリメント(hoge--,--hoge)の場合も同じ挙動となります。ぜひ試してください。

3. 結局どちらを使えば良いか

  • 結論から言うと「どちらを使うかよりも、ほかの演算子と一緒に使わないようにすること」が大切です。
  • 要は混ぜるな危険ということです。
  • console.log()やSystem.out.println()のような演算子に入れて使うのではなく、hoge++;のように単独で使うようにしましょう。
  • これによって、ほかのエンジニアが見てもパッと理解ができるコーデになるでしょう。
  • (個人的にはhoge++と++hogeに関してはhoge++の方を利用しています。どちらを利用するにしても、特別な理由がない限り統一しましょう。)

いかがでしたでしょうか。 ご好評であれば、他にも詰まりそうな点も記事にしていこうと思います。 「いいね / フォロー」いただけますと大変励みになります!
1
1
0

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
1
1