Java入門|Javaの式と演算子

Javaの計算のしくみがわかると、プログラムはもっと読みやすく、もっと思いどおりに動かせる。

Javaでプログラムを書いていると、数字を足したり、条件を比べたり、値を入れ替えたりと、さまざまな「計算」や「判定」を行う場面が出てきます。こうした処理の中心になるのが、演算子です。

たとえば、買い物の合計金額を求めたり、テストの点数が合格ラインを超えているかを調べたり、変数の値を1増やしたりするときには、どれも式や演算子が使われています。つまり、式と演算子は、Javaの基本文法の中でもとても出番の多い大切なテーマです。

この内容をしっかり理解しておくと、プログラムの意味が読み取りやすくなるだけでなく、自分でコードを書くときにも「この計算はどう書けばよいかな」「この順番で評価されるのかな」と迷いにくくなります。特に、演算子の優先順位や型変換を知らないまま書いてしまうと、見た目は正しそうでも意図と違う結果になることがあります。そのため、最初の段階でていねいに押さえておくことがとても大切です。

このページでは、まず式の基本から始めて、演算子とは何か、式はどのように評価されるのかをわかりやすく見ていきます。そのうえで、今後学んでいくインクリメント演算子、デクリメント演算子、代入演算子、シフト演算子、演算子の優先順位、型変換、キャスト演算子へとつながる土台を作っていきます。まずは、Javaでいう「式」がどのようなものなのかから、やさしく確認していきましょう。

式のしくみを知ろう

コンピュータは、さまざまな処理を「計算」や「評価」によって進めています。ここでいう計算は、足し算や掛け算だけではありません。大小を比べることも、文字列をつなげることも、広い意味では演算の一種です。そして、その演算のまとまりをと呼びます。

たとえば、

1 + 2

という書き方は、とてもシンプルな式です。学校で学ぶ数式とよく似ていますね。Javaでは、このような式をコードの中に書いて使います。

式は、多くの場合、演算子オペランドでできています。演算子は計算や比較などの働きをする記号で、オペランドはその対象になる値や変数です。

要素意味
演算子計算や比較などの処理を表す記号+, -, *, /, >, =
オペランド演算の対象になる値や変数1, 2, price, count

たとえば、

1 + 2

では、+ が演算子、1 と 2 がオペランドです。

この式は、そのままでは「計算前の形」です。Javaはこの式を読み取り、計算して結果を出します。この計算して結果を決めることを、式を評価するといいます。評価された結果として得られるものが、式の値です。

たとえば、

1 + 2

という式は評価されると、結果は 3 になります。この 3 が式の値です。

式の評価とは何か

「評価」という言葉は少しかたく感じるかもしれませんが、意味はとてもシンプルです。式を見て、その結果を決めることです。

たとえば次の式を見てみましょう。

5 * 3

この式をJavaが評価すると、結果は 15 になります。つまり、この式の値は 15 です。

同じように、

10 - 4

なら、評価後の値は 6 です。

式は、見た目としては記号や数値の組み合わせですが、Javaにとっては「最終的に何らかの値になるもの」と考えると理解しやすくなります。数字になる式もあれば、true や false になる式もありますし、文字列になる式もあります。

ここではまず、数値になる式を通して、基本の考え方をしっかり押さえておきましょう。

図で見る「式」のイメージ

式のしくみは、図で見るとイメージしやすくなります。たとえば 1 + 2 という式は、次のように考えられます。

オペランド演算子オペランド
1+2

この式を評価すると、次の値になります。

評価後の値:3

この流れを頭の中でつなげると、1 と 2 を + で計算して、3 という値になるということですね。

図として入れるなら、次のようなシンプルなイラストにすると学習用としてわかりやすいです。

この図では、まず 1 と 2 がオペランド、+ が演算子であることを視覚的に示しています。そのあと、矢印で「評価」の流れを見せることで、式がそのまま出力されるのではなく、計算された結果の値になることが自然に理解できます。

初心者のうちは、コードに書かれた式をそのまま文字として見てしまいがちです。でも実際には、Javaは式を評価し、その結果の値を使って処理を進めています。この図は、その考え方をとてもつかみやすくしてくれます。

式の値を出力してみよう

では、実際に式の値を画面に表示してみましょう。画面に文字を出力するには、これまで学んできた System.out.println を使います。このとき、式をそのまま文章の中に組み込むことで、評価後の結果を確認できます。

ファイル名:Sample1.java

class Sample1
{
    public static void main(String[] args)
    {
        // たし算の結果を表示する
        System.out.println("5+7の結果は " + (5 + 7) + " です。");

        // ひき算の結果を表示する
        System.out.println("20-8の結果は " + (20 - 8) + " です。");
    }
}

このプログラムで注目したいところ

このプログラムでは、println の中に文字列だけでなく、式そのものも書いています。

たとえば、

(5 + 7)

という部分は式です。この式は評価されて 12 になります。そして、その結果が前後の文字列とつながって表示されます。

同じように、

(20 - 8)

は評価されると 12 になります。

実行すると、次のような表示になります。

5+7の結果は 12 です。
20-8の結果は 12 です。

ここでとても大切なのは、画面に表示されているのが 5+7 や 20-8 という式そのものではなく、式を評価した結果の値だという点です。Javaは式を見つけると、その場で計算し、その計算結果を使って出力しています。

なぜ式を丸かっこでくくるのか

このような例では、式を丸かっこでくくって書くことがよくあります。

System.out.println("5+7の結果は " + (5 + 7) + " です。");

この丸かっこには、「ここが計算する部分です」とはっきり示す役割があります。

もし丸かっこを付けずに書くと、文字列の連結が先に行われてしまい、思わぬ結果になることがあります。たとえば、

System.out.println("5+7の結果は " + 5 + 7 + " です。");

と書くと、Javaは左から順に処理していくため、5 と 7 が数値として足されるのではなく、文字列としてつながってしまいます。その結果、表示は次のようになります。

5+7の結果は 57 です。

これは初心者がとてもつまずきやすいポイントです。

つまり、数値として計算してほしい部分は丸かっこで囲む、という意識を持っておくと安心です。丸かっこを使うことで、Javaに対して「ここは先に計算してね」と伝えられます。

文字列の連結と式の評価を区別しよう

Javaでは、+ は足し算だけに使うわけではありません。文字列どうしをつなぐときにも使います。これが少しややこしいところです。

たとえば、

System.out.println("こんにちは" + "Java");

と書くと、これは文字列の連結になり、

こんにちはJava

と表示されます。

一方で、

System.out.println(3 + 4);

なら、これは数値の足し算なので、

7

と表示されます。

この違いはとても大切です。

書き方意味結果
"こんにちは" + "Java"文字列をつなげるこんにちはJava
3 + 4数値を足す7
"結果は " + (3 + 4)計算結果を文字列とつなげる結果は 7

つまり、同じ + でも、何を相手にしているかで役割が変わります。Javaの式を正しく読み取るためには、この点をしっかり区別できるようになることが大切です。

かけ算の書き方にも注意しよう

算数や数学では掛け算を × で表すことが多いですが、Javaでは × は使いません。Javaでは掛け算をするときに * を使います。

たとえば、

6 * 4

は、6 かける 4 という意味です。

これは初心者のうちは見慣れないかもしれませんが、プログラミングではとても一般的な書き方です。キーボードから入力しやすい記号を使っている、と考えると自然です。

ほかにも、四則演算では次の記号を使います。

演算の種類記号
足し算+3 + 2
引き算-7 - 1
掛け算*4 * 5
割り算/8 / 2
余り%9 % 4

このような演算子は、今後Javaのコードを書くうえで何度も登場します。まずは、Javaでは演算を記号で表すという感覚に慣れていきましょう。

式はプログラムのあちこちで使われる

式は、println の中だけで使うものではありません。変数に値を代入するとき、条件分岐を書くとき、繰り返し処理の回数を決めるときなど、Javaのコードのさまざまな場面で使われます。

たとえば、次のような書き方も式を利用しています。

int total = 8 + 2;

この場合、8 + 2 という式が評価されて 10 になり、その値が total に代入されます。

また、

int price = 1200;
int count = 3;
int sum = price * count;

では、price * count が式です。この式は評価されて 3600 になり、その結果が sum に入ります。

このように考えると、式は単なる計算問題ではなく、Javaの処理を組み立てるための基本の部品だといえます。演算子を覚えることは、Javaで「処理を表現する力」を身につけることにつながります。

これから学ぶ内容とのつながり

ここで学んだ「式」「演算子」「評価」「式の値」という考え方は、この先に学ぶ内容すべての土台になります。

たとえば、インクリメント演算子は変数の値を1増やすための演算子ですし、代入演算子は計算結果を変数に入れるときに使います。さらに、演算子の優先順位を知らないと、複数の演算子が混ざった式を正しく読み取れません。型変換やキャスト演算子も、式の中でどのような型の値として扱われるかに深く関わっています。

つまり、この最初の段階で「式とは、評価されて値になるものなんだ」としっかり理解しておくと、その後の学習がぐっと楽になります。

最初に押さえておきたいポイント

最後に、この節で特に大事な考え方を整理しておきます。

ポイント内容
評価されて何らかの値になるもの
演算子計算や比較などの働きをする記号
オペランド演算の対象になる値や変数
評価式を計算して結果を決めること
式の値評価されたあとの結果

これらの言葉は、今後も何度も出てきます。まだ少しあいまいでも大丈夫ですが、少なくとも 式は評価されて値になる という感覚は、ここでしっかり身につけておくと安心です。