手を動かして学ぶ Java入門 (文と式の違い)
環境構築不要! ブラウザから直接コードを実行できます。
本記事では、Java の文と式の違いについて学びます。
10分くらいで、さくっと終わる記事をめざしています。
シリーズ一覧
- シリーズ
- 手を動かして学ぶ Java入門 (Hello world 編)
- 手を動かして学ぶ Java入門 (数値と演算)
- 手を動かして学ぶ Java入門 (数値と変数)
- 手を動かして学ぶ Java入門 (コメントの書き方)
- 手を動かして学ぶ Java入門 (文と式の違い)
- 手を動かして学ぶ Java入門 (if文)
- 手を動かして学ぶ Java入門 (if-else文、if-elseif文)
- 手を動かして学ぶ Java入門 (文字列の連結)
- 手を動かして学ぶ Java入門 (while文)
- 手を動かして学ぶ Java入門 (break文)
- 手を動かして学ぶ Java入門 (continue文)
- 手を動かして学ぶ Java入門 (for文)
- 手を動かして学ぶ Java入門 (クラスの超基本)
- 手を動かして学ぶ Java入門 (クラス・メソッド)
- 手を動かして学ぶ Java入門 (クラス・フィールド)
- 手を動かして学ぶ Java入門 (クラス・コンストラクタ)
- 手を動かして学ぶ Java入門 (文字列クラス)
- 手を動かして学ぶ Java入門 (静的メソッド)
- 手を動かして学ぶ Java入門 (静的フィールド)
続きは近日公開予定!
はじめに
この記事は paiza.IO の「Online Java compiler」を利用しています。
2024/11/18 現在、上記環境の Java バージョンは 18 です。(paiza.IO利用ガイド)
実行したコードは paiza.IO で保存および公開されることがあります。
そのため、個人情報などの機密性の高い情報は、コードとして入力しないようにご注意ください。
詳細は paiza.IO の利用規約およびプライバシーポリシーをご確認ください。
文と式の違い
正直、「文」と「式」の細かい定義は難しいです。
なので、ここではおおざっぱに、次のことをなんとなく理解してもらえれば OK です。
- 文 : 値を返さない
- 式 : 値を返す
そして「文」は「式」で構成されます。
具体的な例で見てみましょう。
int x = 2 + 3;
^^^^^^^^^^^^^^ <--- 文
これは「文」です。
この文を実行すると、変数 x に 2 + 3 の結果が代入されます。
この「文」自体は 値を返さない、というのはなんとなくイメージできますでしょうか?
ちなみに、2 + 3 は「式」です。
2 + 3
^^^^^ <--- 式
2 + 3 は、5 という 値を返す ので「式」というわけですね。
さて、Java の入門記事として、「文」と「式」を解説するかどうかは少し悩みました。
入門の内容としては少し難しいのではないかな、と…
ただ、今後の記事では、「文」と「式」という単語は明確に使い分けていきます。
例えば、まだ解説はしていませんが …
- if文
- for文
- switch式
などがあります。
「文」と「式」の違いがわかっていれば、今後の解説がより理解しやすくなる … と思います。
文
Java における「文」とは、ひとまとめにされた処理 (手続き) のことです。
英語では Statement といいます。
文の特徴としては、文を実行しても 結果 は返しません。
「値を持たない」ともいいます。
今まで、特に説明もなく文末にはセミコロン (;) をつけていました。
これは「文」が終わりますよ、というマークです。
int x = 123;
^ <--- この部分!
もちろん、セミコロンがないとコンパイルエラーとなります。
実際に、エラーとなる例を見てみましょう。
コードは変更せずに、そのまま「実行(Ctrl-Enter)」ボタンを押してください。
(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)
エラーとして、
Main.java:3: error: ';' expected
int x = 2 + 3
^
1 error
が表示されたら成功です。
expected は「期待される」という意味ですね。
Java としては ; を期待しているけど、それがないよ、というエラーです。
つまり「式」だけではプログラムは実行できない、というわけですね。
ちなみに、セミコロン (;) が必要ない「文」もあります。
(if文やfor文など)
式
Java における「式」とは、結果を返す処理のことです。
英語では Expression といいます。
式の特徴としては、式を処理(評価) すると 結果 を返します。
「値を持つ」ともいいます。
【例】
2 + 3
^^^^^ <--- 式
2 + 3 は、5 という 値を返す ので「式」になります。
ちなみに、細かいですが 2 や 3 それ自体も「式」の1つです。
2 は 2 を返しますし、3 は 3 を返す、というわけですね。
【備考】
実は値を返さない「式」もあります。
例えば、次のようなメソッドの呼び出しです。
System.out.println("Hello, world!")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <--- 式です。
println メソッドは、文字列を出力するだけで値は返しません。
さて、この「式」ですが、式だけではプログラムを実行できません。
そのため、この式にもセミコロン (;) をつけて「文」にする必要があります。
System.out.println("Hello, world!");
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <--- 文です。
もちろん、セミコロンがないとコンパイルエラーとなります。
応用問題
まずは、下記のプログラムをそのまま「実行(Ctrl-Enter)」してみましょう。
結果はコンパイルエラーになったかと思います。
【問題】
そこで、このコードにセミコロン (;) だけを書き加えてエラーを解消してください。
また、「出力」は 6 となるようにしてください。
コードにセミコロン (;) を書き加えたら、もう一度「実行(Ctrl-Enter)」してみましょう。
ヒントとしては
- セミコロン (;) を使えば、1行で2つの「文」を書くことができる。
です。
(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)
無事に、「出力」が 6 となりましたでしょうか?
もし解けなかった場合は、下記の回答例をご参照ください。
回答例
【コード】
public class Main {
public static void main(String[] args) {
int n = 2; n = n * 3;
System.out.println(n);
}
}
【出力】
6
まとめ
今回は、次のことを学習しました。
- 文 : 値を返さない
- 式 : 値を返す
次回は「手を動かして学ぶ Java入門 (if文)」になります。
関連記事
- シリーズ
- 手を動かして学ぶ Java入門 (Hello world 編)
- 手を動かして学ぶ Java入門 (数値と演算)
- 手を動かして学ぶ Java入門 (数値と変数)
- 手を動かして学ぶ Java入門 (コメントの書き方)
- 手を動かして学ぶ Java入門 (文と式の違い)
- 手を動かして学ぶ Java入門 (if文)
- 手を動かして学ぶ Java入門 (if-else文、if-elseif文)
- 手を動かして学ぶ Java入門 (文字列の連結)
- 手を動かして学ぶ Java入門 (while文)
- 手を動かして学ぶ Java入門 (break文)
- 手を動かして学ぶ Java入門 (continue文)
- 手を動かして学ぶ Java入門 (for文)
- 手を動かして学ぶ Java入門 (クラスの超基本)
- 手を動かして学ぶ Java入門 (クラス・メソッド)
- 手を動かして学ぶ Java入門 (クラス・フィールド)
- 手を動かして学ぶ Java入門 (クラス・コンストラクタ)
- 手を動かして学ぶ Java入門 (文字列クラス)
- 手を動かして学ぶ Java入門 (静的メソッド)
- 手を動かして学ぶ Java入門 (静的フィールド)