Java 入門

Java コンソール出力

コンソールへの出力は、プログラムがユーザーと対話し、結果を表示し、デバッグ情報を提供するための最も基本的な手段です。

本章では、Javaにおける出力の包括的なガイドを提供し、出力を効果的にフォーマットするための様々なメソッドやテクニックを紹介します。

1. System.out.println() メソッド

Javaにおいて、コンソールにデータを出力する最も基本的かつ頻繁に使用されるメソッドが System.out.println() です。このメソッドは、指定された文字列をコンソールに表示した後、カーソルを次の行に移動(改行)させます。

1.1 基本的な使い方

System.out.println() の使い方は非常にシンプルです。出力したい文字列を引数としてメソッドに渡すだけです。

public class PrintExample {
    public static void main(String[] args) {
        System.out.println("こんにちは、世界!"); // コンソールに "こんにちは、世界!" と出力
    }
}

1.2 変数の出力

System.out.println() を使用して変数の値を出力することもできます。Javaは、ほとんどのデータ型を自動的にその文字列形式に変換します。

public class VariablePrintExample {
    public static void main(String[] args) {
        int age = 30;
        String name = "アリス";
        double salary = 50000.00;

        System.out.println("名前: " + name);   // "名前: アリス" と出力
        System.out.println("年齢: " + age);    // "年齢: 30" と出力
        System.out.println("給与: " + salary); // "給与: 50000.0" と出力
    }
}

上の例では、+ 演算子が文字列と変数を連結(コンカティネーション)するために使用されています。Javaは連結を行う前に、intdouble の変数を自動的に文字列へ変換します。

1.3 式(エクスプレッション)の出力

式の結果を直接出力することも可能です。

public class ExpressionPrintExample {
    public static void main(String[] args) {
        int x = 10;
        int y = 5;

        // "x と y の和は: 15" と出力
        System.out.println("x と y の和は: " + (x + y)); 

        // "x と y の積は: 50" と出力
        System.out.println("x と y の積は: " + (x * y)); 
    }
}

注意: 丸括弧 () を使用しているのは、文字列連結が行われる前に加算や乗算の演算を確実に実行させるためです。

2. System.out.print() メソッド

System.out.print() メソッドは System.out.println() と似ていますが、出力した後にカーソルを次の行に移動させません。これにより、複数の項目を同一行に並べて出力することができます。

2.1 基本的な使い方

public class PrintExample2 {
    public static void main(String[] args) {
        System.out.print("こんにちは、");
        System.out.print("世界!");
        System.out.println(); // カーソルを次の行に移動させる
    }
}

このコードは、1行の中に "こんにちは、世界!" と出力します。引数なしの System.out.println() は、コンテンツを出力した後に手動で改行を入れたい場合に便利です。

2.2 print() と println() の組み合わせ

これら2つのメソッドを組み合わせることで、より複雑な出力フォーマットを作成できます。

public class CombinedPrintExample {
    public static void main(String[] args) {
        String item = "書籍";
        double price = 25.99;

        System.out.print("商品: ");
        System.out.println(item);
        System.out.print("価格: ¥");
        System.out.println(price);
    }
}

出力結果は以下のようになります:

商品: 書籍
価格: ¥25.99

3. エスケープシーケンス

エスケープシーケンスは特殊な文字の組み合わせであり、改行や引用符など、直接入力することが困難、あるいは不可能な文字を文字列に含めることを可能にします。

3.1 よく使われるエスケープシーケンス

エスケープシーケンス説明
\n改行 (Newline)
\tタブ (Tab) - 配置を揃える際に使用
\\バックスラッシュ
\"二重引用符 (ダブルクォーテーション)
\'一重引用符 (シングルクォーテーション)

3.2 エスケープシーケンスの使用例

public class EscapeSequenceExample {
    public static void main(String[] args) {
        // \n を使用した改行
        System.out.println("これは1行目のテキストです。\nこれは2行目のテキストです。");

        // \t を使用した配置の調整
        System.out.println("名前:\t張三");

        // \" を使用した引用符の出力
        System.out.println("彼は言いました: \"こんにちは!\"");

        // バックスラッシュ自体の出力
        System.out.println("これはバックスラッシュです: \\");
    }
}

4. printf() メソッド:フォーマット出力の基本

println()print() は基本的な出力に便利ですが、System.out.printf() メソッドは出力フォーマットに対してより強力な制御を提供します。これを使用すると、「書式指定子(フォーマット指定子)」を用いて値の表示方法を指定できます。

public class PrintfExample {
    public static void main(String[] args) {
        String name = "チャーリー";
        int age = 25;
        double height = 1.75;

        // %s は文字列, %d は整数, %.2f は小数点以下2位までの浮動小数点数を表す
        System.out.printf("名前: %s, 年齢: %d, 身長: %.2f\n", name, age, height);
        // 出力: 名前: チャーリー, 年齢: 25, 身長: 1.75
    }
}