【Javaの勉強】算術演算子・連結演算子「+」で気をつけたいこと

2019年3月24日

Javaの「+」は見たとおり「足す」を表す使い方があり、「1+2」と書いたら足し算されて「3」が出力されます。これを算術演算子と呼びます。しかし、ちょっと紛らわしいのですがそのほかに連結演算子という使われ方もあります。これは文字列と文字列を結合させるという使い方をします。

この使い方で気をつけたいのは、文字列と同時に数字もある場合、それが足し算がされるのかされないのかということです。

実行結果結果123
結果6
6結果

+演算子は左から評価されます。これがどう言う意味か、例1のコードを見ていきましょう。

6行目は「”結果”+num1+num2+num3」となっています。なんとなく全部足されて「結果6」になるかと思いきや、実行すると「結果123」となっています。なぜかというと、一番左の「”結果”」が文字列なので次の+が連結演算子として評価されるからです。最初に文字列が結合されると「”結果1″」に、さらに次の+も連結演算子となり「”結果12″」に、さらにこの文字列に連結されて「”結果123″」となります。

これを「結果6」にしたい時は、7行目のように変数部分を括弧で囲います。すると括弧内が先に評価されてまずは「num1+num2+num3」が算術演算子として計算されて、「”結果1″+6」が連結演算子として評価されて「結果6」が出力されます。

また、8行目を見ると左から評価されていることを知ることができます。左側の「num1+num2+num3」の部分がまず評価されて、算術演算子として「6」が計算されます。そして、そのあと「6+”結果”」が連結演算子として評価されて、「6結果」が出力されます。

このように、左から評価されること、連結演算子か算術演算子かということを意識しないと違う結果が出力されてしまうことがあるので注意が必要です。