【Java入門講座】3章.変数の使い方(宣言・代入・初期化・型・出力)

Java入門レッスン

☜前の章へ 文字と改行の出力方法とコメントの書き方
☞次の章へ 計算の基本と四則演算や演算子の使い方


【Java入門講座】は全10章から構成される、初心者向けのJava学習コンテンツです。1章から10章まで学習して頂くことでJavaの基礎を学習することができます。

この記事で分かること
  1. 変数の宣言方法
  2. 変数の型とは何か
  3. 変数名の付け方のルール
  4. 変数の出力方法
  5. 小数を表示する際に小数点以下を四捨五入する方法
  6. 小数点以下を切り捨てる方法
  7. 変数に値を代入する方法
  8. 変数を初期化する方法
  9. 変数に他の変数を代入する方法

この章では変数の基本的な扱い方について学ぶことが出来ます。

変数には数値などを格納することができ、この変数同士を使い計算などを行うことができます。

Javaの変数の宣言方法

変数の宣言方法
  • 型 変数名;

変数とは、箱のようなものです。変数には数値や文字列などのデータを格納することができます。

public class App {
    public static void main(String[] args) {

        int num;
        
    }
}

変数の宣言を次のように行っています。numが変数です。

int num;

変数を使うためには、このように書く必要があり、変数を宣言すると言います

  • intというのは変数の型のことで整数型を表す
  • 変数numには整数値のみ格納することができる

変数の型や変数に値を格納する方法については、後程詳しく解説します。

Javaの変数の型とは

変数の型とは
  • 変数に格納できるデータの種類を指定するもの
変数のイメージ

上記の図を見てください。int型の変数には数字の100を格納することができますが、文字のAを格納することはできません。char型には文字のAを格納することができます

このように、変数は型によって格納できるデータが異なります。

変数には種類があり、型(種類)を指定してあげることで変数に格納できるものが変化します

  • 変数には種類がある
  • 変数の型を指定することで格納できるデータの種類が変わる

以下の表はJavaの変数の型の一例です。

種類データ型サイズ値の範囲
型なしvoid
文字列char20~65,535
整数型int4-2147483648~2147483648
浮動小数点型float41.401298E-45~3.4028235e+38
double84.94065645841246544e-324~1.79769313486231570e+308
表:Javaのデータ型
  • void(ボイド)型:void型は型がないという意味です。メソッドで良く使用される型になります。メソッドは8章で学ぶことが出来ます。
  • char(チャーまたはキャラ)型:char型の変数にはb,D,r,wなどの文字を1文字格納することができます。
  • int(イント)型:int型は整数型なので、11、334、9428などのように小数点などを含まない数値を格納することが出来る変数の型です。
  • float(フロート)型、double(ダブル)型:float型、double型は浮動小数点型なので、2.5、0.009などの小数点が含まれる数値を格納することが出来る変数の型です。

Javaの変数名の付け方のルール

  • 変数名にはアルファベット、数字、_(アンダーバー)を使用できる
int num_1;
  • 一文字目に数字は使用できない
int 1num;
  • 大文字と小文字は区別される
int num;
int Num;
  • 予約語(Javaに登録されている単語のこと)は使用できない
予約語一覧
abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnshortstaticstrictfpsuper
switchsynchrnizedthisthrowthrows
transienttryvoidvolatilewhile
表:Javaの予約語

予約語に先ほど学んだintやvoidがあります。予約語には多くの単語がありますが、暗記する必要はありません。予約語で変数を宣言するとエラーになるので、もしエラーが発生したら変数名を変更しましょう。

Javaで変数に値を代入する方法

変数の代入方法
  • 変数名 = 値;
public class App {
    public static void main(String[] args) {

        int num;
        char alf;
        float decF;
        double decD;

        num = 100;
        alf = 'A';
        decF = 1.5f;
        decD = 5.5;

        System.out.println(num);
        System.out.println(alf);
        System.out.println(decF);
        System.out.println(decD);

    }
}

出力結果

出力結果100、A、1.5、5.5


変数への値の代入を以下のように行っています。

num = 100;
alf = 'A';
decF = 1.5f;
decD = 5.5;

変数numには数字の100が入っています。

変数alfには文字のAが入っています。

変数decFには数字の1.5が入っています。float型の場合、代入する値の末尾に「f」を書く必要があります。「f」を入れないとdouble型だとみなされてコンパイルエラーになります。そういう仕組みになっています。

変数decDには数字の5.5が入っています。double型では末尾にfは必要ありません

変数の中身を出力したい場合は、System.out.println()を使います。
()の中に出力したい変数名を書きます。

System.out.println(num);
System.out.println(alf);

100とAが出力されます。

変数の出力方法
  • System.out.println(変数名);

変数の出力方法にはいくつかパターンがあるので、それも確認していきましょう。

Javaで変数を出力する方法と小数点の切り捨て方法

javaで変数を出力する方法3パターン

変数の出力の3パターン
  • System.out.println(num);
  • System.out.println(“numの値は” + num + “です。”);
  • System.out.printf(“numの値は%dです。”, num);
public class App {
    public static void main(String[] args) {

        int num;
        
        num = 2;
        
        System.out.println(num);
        
        System.out.println("numの値は" + num + "です。");

        // printfメソッドを使って書式指定
        System.out.printf("numの値は%dです。", num);
    }
}

出力結果

出力結果2、numの値は2です。numの値は2です。

printlnを使えば、変数を()で囲むだけで出力することができます。文章の途中で表示したい場合は、変数を+で囲みます。

一方、printfの場合、変数を()で囲むだけでは出力することができずエラーになります。int型の変数を表示したい場合は、左側に%dと書き、%dを”(ダブルクォーテーション)で囲む必要があります。
そして末尾の”(ダブルクォーテーション)の後ろを,(カンマ)で区切り、右側に変数名を書きます。

%dは変換指定子(書式指定子)と呼ばれます。

変換指定子は変数の型によって変える必要があります。

変換指定子一例

変換指定子変数の型概要
%cchar文字
%schar (配列)文字列
%dint10進整数
%ffloat単精度の実数
%fdouble倍精度の実数
表:Javaの変換指定子

以下のコードを実行してみましょう。

public class App {
    public static void main(String[] args) {

        int num;
        char alf;
        float decF;
        double decD;

        num = 100;
        alf = 'A';
        decF = 1.5f;
        decD = 5.5;

        System.out.printf("%d\n", num);
        System.out.printf("%c\n", alf);
        System.out.printf("%f\n", decF);
        System.out.printf("%f\n", decD);

    }
}

出力結果

出力結果100、A、1.500000、5.500000

このように、出力することができました。
しかし、小数点の後ろに0が沢山ついており気になりますね。小数点の切り捨て方法についても確認していきましょう。

printlnの場合は余分な0は表示されません。

javaの小数点以下を四捨五入する方法

小数点以下の四捨五入する方法
  • System.out.printf(“%.1f\n”, decF);
public class App {
    public static void main(String[] args) {

        float decF;

        decF = 1.5f;

        System.out.printf("%.1f\n", decF);

    }
}

出力結果

出力結果1.5

%の後ろに「.1」と書くことで小数点第二位が四捨五入され、小数点第一位までの値が表示されています。

javaの小数点以下を切り捨てる方法

public class App {
    public static void main(String[] args) {

        double doubleValueA = 1.23456;
        
        //四桁目が四捨五入され1.235と表示される
        //フォーマット指定子fで桁数指定する場合、基本的に四捨五入される
        System.out.printf("doubleValueの値は%.3fです。\n", doubleValueA);

    }
}

出力結果

doubleValueの値は1.235です

1.23456を小数点第三位まで表示するように指定したら、1.235と表示されました。
これは小数点第四位の5が四捨五入されたためです。

フォーマット指定子fで桁数指定する場合、基本的に四捨五入されてしまいます。

四捨五入したくない場合もあるので、小数点以下を切り捨てる方法を紹介します。

public class App {
    public static void main(String[] args) {

        double doubleValueA = 1.23456;
        
        //四桁目が四捨五入され1.235と表示される
        //フォーマット指定子fで桁数指定する場合、基本的に四捨五入される
        System.out.printf("doubleValueの値は%.3fです。\n", doubleValueA);

        //一例としてメソッドfloorを使用する。floorは小数点以下を切り捨てる
        //(1)1.23456 * 1000 = 1234.56
        //(2)メソッドfloorを実行 1234.56 → 1234
        //(3)1234 / 1000 → 1.234
        double doubleValueB = ((Math.floor(doubleValueA * 1000)) / 1000);
        System.out.printf("doubleValueの値は%.3fです。\n", doubleValueB);
    }
}

出力結果

doubleValueの値は1.235です。doubleValueの値は1.234です

floorというメソッドを使うと四捨五入されなくなります。
floorメソッドは小数点以下を切り捨てる働きをします。

floorメソッドの使い方
  • double doubleValueB = ((Math.floor(doubleValueA * 1000)) / 1000);

これは以下の順序で、以下のことが行われています。

  1. (doubleValueA * 1000) 「1.23456 * 1000 = 1234.56」
  2. (Math.floor(doubleValueA * 1000)) 「1234.56 → 1234」
  3. ((Math.floor(doubleValueA * 1000)) / 1000) 「1234 / 1000 → 1.234」

Javaで変数を初期化する方法

変数の初期化方法
  • 型 変数名 = 値;
public class App {
    public static void main(String[] args) {

        int num = 100;
        char alf = 'A';

        System.out.println(num);
        System.out.println(alf);

    }
}

変数の宣言と同時に値を代入することを、初期化と言います。
以下のように初期化しています。

int num = 100;
char alf = 'A';

numには宣言と同時に数字の100が入っています。
alfには宣言と同時に文字のAが入っています。

Javaで変数に他の変数を代入する方法

変数に他の変数を代入する方法
  • 変数名 = 変数名;
public class App {
    public static void main(String[] args) {

        int numA = 100;
        int numB = 50;

        numA = numB;

        System.out.println(numA);
        
    }
}

以下のように変数に他の変数を代入することができます。

 numA = numB;

numAには100が入っていましたが、numBの50でnumAの値は上書きされます。


練習問題

  1. 整数値型の変数 numAを宣言し、10を代入しましょう
  2. 浮動小数点型の変数 decAを宣言し、10.5 を代入しましょう
  3. 文字型の変数alfAを宣言し、Xを代入しましょう
  4. 変数numA、decA、alfAをそれぞれコンソールに表示しましょう
public class App {
    public static void main(String[] args) {
        // 変数の宣言と初期化
        int numA = 10;
        float decA = 10.5f;  // 浮動小数点型の場合はfを付けます
        char alfA = 'X';

        // 変数の表示
        System.out.println("numA: " + numA);
        System.out.println("decA: " + decA);
        System.out.println("alfA: " + alfA);
    }
}
  1. 整数値型の変数 numBを宣言し、100で初期化しましょう
  2. 浮動小数点型の変数 decBを宣言し、105.005 で初期化しましょう
  3. 文字型の変数alfAを宣言し、Aで初期化しましょう
  4. 変数numB、decB、alfBをそれぞれコンソールに表示しましょう
public class App {
    public static void main(String[] args) {
        // 変数の宣言と初期化
        int numA = 10;
        float decA = 10.5f;  // float型の場合はfを付けます
        char alfA = 'X';

        // 変数の表示
        System.out.println("numA: " + numA);
        System.out.println("decA: " + decA);
        System.out.println("alfA: " + alfA);

        // 新しい変数の宣言と初期化
        int numB = 100;
        float decB = 105.005f;
        char alfB = 'A';

        // 新しい変数の表示
        System.out.println("numB: " + numB);
        System.out.println("decB: " + decB);
        System.out.println("alfB: " + alfB);
    }
}
  1. numAにnumBを代入しましょう
  2. decAにdecBを代入しましょう
  3. alfAにalfBを代入しましょう
  4. 変数numA、decA、alfAをそれぞれコンソールに表示しましょう
public class App {
    public static void main(String[] args) {
        // 変数の宣言と初期化
        int numA = 10;
        float decA = 10.5f;  // float型の場合はfを付けます
        char alfA = 'X';

        // 変数の表示
        System.out.println("numA: " + numA);
        System.out.println("decA: " + decA);
        System.out.println("alfA: " + alfA);

        // 新しい変数の宣言と初期化
        int numB = 100;
        float decB = 105.005f;
        char alfB = 'A';

        // 新しい変数の表示
        System.out.println("numB: " + numB);
        System.out.println("decB: " + decB);
        System.out.println("alfB: " + alfB);

        // 変数の代入
        numA = numB;
        decA = decB;
        alfA = alfB;

        // 代入後の変数の表示
        System.out.println("numA (代入後): " + numA);
        System.out.println("decA (代入後): " + decA);
        System.out.println("alfA (代入後): " + alfA);
    }
}

☜前の章へ 文字と改行の出力方法とコメントの書き方
☞次の章へ 計算の基本と四則演算や演算子の使い方