本文へスキップ
BecomeCoder

Java文法コース · 第6章 メソッド ― 処理をひとまとまりにする · レッスン25

void メソッド ― 値を返さない処理

ブラウザで完結

導入

すべてのメソッドが値を返す必要はありません。「表示するだけ」「値を書き換えるだけ」のような、戻り値を必要としない処理もたくさんあります。

説明

public class Main {
    public static void main(String[] args) {
        greet("太郎");
        greet("花子");
    }

    static void greet(String name) {
        System.out.println(name + "さん、こんにちは!");
    }
}
  • static void greet(String name) { ... } … 戻り値の型のところに void(「何もない」という意味)と書くと、値を返さないメソッドになります。
  • void のメソッドには return 値; は書けません(何も返さない return; だけの単独の行なら、途中で処理を打ち切りたいときに使えます)。
  • 呼び出し側も、戻り値を使わないのでそのまま greet("太郎"); と1文で書きます。

「値を計算して返す」メソッドは戻り値ありで、「何かを実行するだけ」のメソッドは void で、と使い分けましょう。

やってみよう

下のエディタで greet を呼び出す名前を増やしてみましょう。greet の中の表示メッセージを変えて、複数回の呼び出しにどう反映されるかも確かめてください。

演習

void printLine(int n) というメソッドを作り、"-"n 個つなげて表示するようにしてください。main から printLine(5) を呼び出してください(結果は -----)。

ヒント1を見る

メソッドの中で String line = ""; for (int i = 0; i < n; i++) { line += "-"; } のように文字列を組み立てます。

ヒント2を見る

最後に System.out.println(line); で表示します。

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。