スライドショースライドショー

【一目でわかるJava】変数の宣言と使い方

こんにちは!フリーランスの長野です。

プログラムを書き始めてよく使うのが変数ですよね。

数字や文字列を格納する変数にそれぞれ名前を付けて、その変数名を使って処理を記述します。

その変数名に代入する値を必要に応じて変えることで処理結果が変わってきますよね。

この記事では、変数について

・変数とは
・データ型一覧
・変数を宣言する方法

という基本的な内容から、

・変数の初期化
・変数に値を代入する方法

など具体的な使い方についても解説していきます。

今回は変数について、使い方をわかりやすく解説します!

変数とは

変数とはデータを格納しておく領域のことです。

変数はメモリ上に確保され、値を代入したり参照したりすることができます。

それぞれの領域を区別するために変数名を付けて宣言します

データ型一覧

データ型とは、数字や文字などのデータをメモリ上に確保する領域やバイト長、確保した領域の扱い方などを指定するものです。

変数を宣言するときに、データ型を指定する必要があります。

データ型について表にまとめました。

数値を扱うデータ型:

データ型の種類名称消費メモリ範囲
byteバイト型1バイト-128~127
short短整数型2バイト-32768~32767
int整数型4バイト-2147483648~
2147483647
long長整数型8バイト-9223372036854775808~
9223372036854775807
float単精度浮動小数点数型4バイト±3.40282347E+38~
±1.40239846E-45
double倍精度浮動小数点数型8バイト±1.79769313486231570E+308~
±4.94065645841246544E-324

その他のデータ型:

データ型の種類名称消費メモリ説明
char文字型2バイト¥u0000~¥uFFFF
String文字列型4バイト
(64ビットJVMでは8バイト)
参照型
booleanブーリアン型1バイトtrue(真)かfalse(偽)か

変数を宣言する方法

変数を宣言する方法について説明します。

下記のように変数に付ける変数名の前にデータ型を指定します。

データ型名 変数名;

変数の宣言例:

int i;
double d;
String str;

変数の初期化

Javaの場合、メソッド内などで使用するローカル変数の場合、宣言しただけでは初期化されません

初期化されていない変数を使用するとコンパイルエラーとなるので、注意しましょう。

初期化は次のようにして記述します。

変数名 = 値;

また次のように宣言と初期化を一緒に記述することもできます。

データ型名 変数名 = 値;

なおクラス変数インスタンス変数の場合、データ型を指定して宣言すると初期値が与えられます

その場合の初期値についてまとめました。

整数値系のデータ型:0(ゼロ)
float型:0.0f
double型:0.0d
文字型:'\u0000'
boolean型:false
参照型(String):null

ちなみにクラス変数とは、クラスをインスタンス化せずに使用できる変数のことです。

インスタンス変数
とは、クラスをインスタンス化して使用する変数のことです。

クラス変数、インスタンス変数についてもっと詳しく知りたい方は、こちらを参考にしてくださいね!

【Java入門】static変数(クラス変数)の使い方
更新日 : 2019年4月4日

変数に値を代入する方法

変数に値を代入する方法について説明します。

値を代入するには「=」記号を使用します。

初期化と同じように変数名の後に「=」記号を続けて記入し、その後に代入する値を記述します。

変数名 = 値;

それではサンプルコードで確認してみましょう。

public class Main {
 
    public static void main(String[] args) {
        String str = "Hello"; // String型
        int i = 1; // int型
        float f = 1e-1f; // 1×10^-1 float型
        double d = 1.0; // double型
        boolean b = true; // boolean型
 
        System.out.println("変数str は " + str + " です");
        System.out.println("変数i は " + i + " です");
        System.out.println("変数f は " + f + " です");
        System.out.println("変数d は " + d + " です");
        System.out.println("変数b は " + b + " です");
    }
 
}

実行結果:

変数str は Hello です
変数i は 1 です
変数f は 0.1 です
変数d は 1.0 です
変数b は true です

このサンプルコードでは、まずString型の変数「str」に"Hello"という文字列を代入しています。

次にint型の変数「i」に整数値の1を代入しています。

float型の変数「f」に小数値の1e-1fを代入しています。

1e-1fとは1×10のマイナス1乗すなわち0.1のことです。

浮動小数点のリテラルには指数を表す「e」(もしくは「E」)を使用します。

なおfloat型に値を代入する場合は数値の後に「f」(もしくは「F」)を付けてfloat型であることを明示します。

double型の変数「d」に小数値の1.0を代入しています。

boolean型の変数「b」にtrueを代入しています。

またSystem.out.printlnメソッドを使用して、それぞれの文字列と変数の値を表示しています。

このままJavaを学び続けて大丈夫?

あなたがJavaを学んでいる理由は何でしょうか?

  • プログラミングと言えばJavaだから
  • プログラミング言語人気ランキングで1位だから
  • 授業で一度習ったことがあるから

もしあなたがJavaでできることやJavaエンジニアの働き方などを知らずに学習を始めているのなら、Javaの特徴があなたのやりたいことと本当に合っているのか?を見直す必要があります。

Javaは誕生して30年経ち様々な企業で使われて求人数や需要も多く、汎用性の高い非常に優れている言語です。そんなJavaエンジニアの特徴としては、

  • アンドロイドアプリや業務アプリ向きでWebサービスには別言語の方が向いている
  • 基本的に客先常駐型かつチームで開発していくスタイル、複数の仕事を掛け持ちしたり、場所を問わずに働きたいという人には向いていない
  • Javaは単体で動作する言語ではなく、他の様々な技術と掛け合わせる言語のため、習得難易度は高い

もしあなたがWebサービス開発経験を積みつつ、自分でもサービスを作れるようになりたい。場所問わずに自由に働きたい。というイメージでしたら、Ruby、Python、PHPなどの言語のほうが適しています。

自分に合った言語を知りたい方は、質問に答えていくだけであなたにおすすめのプログラミング言語を知れるプログラミング学習診断アプリがありますので、こちらを見てみてください。

おすすめの言語だけでなく、理想の生活を手に入れるキャリア設計や、そのキャリアに直結する効率の良い学習方法など、1からあなたにあったものを知りたい方は弊社「侍エンジニア塾」の無料体験レッスンでお答えいたします。

オンラインでも受講可能なため、お気軽にお申し込みください。

無料体験レッスンを申し込む

まとめ

ここでは、変数を宣言する方法や変数に値を代入する方法について説明しました。

変数を使って処理を記述しておけば、後は代入する値を変更するだけで異なる結果を出力することができて便利です。

使いこなすことができるように、この記事を何度も参考にして下さいね!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説