0
0

More than 3 years have passed since last update.

Javaの変数の使い方

Last updated at Posted at 2020-05-11

この記事は、他の言語でプログラミングしていた人が、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(偽)

※真偽判定用変数。

変数の宣言

変数は変数名とデータ型名が必要です。
書き方は "データ型名(半角スペース)変数名;" です。
例)

example.java
int i;
String s;

変数の初期化

宣言をしただけでは、型ごとに決められた値しか入りません。自分が入れたい値を入れる必要があります。
書き方は "変数名=入れたい値;" です。
宣言と同時に初期化も行え、その場合は"データ型名(半角スペース)変数名=入れたい値;"と書きます。
※補足説明。数字はそのまま。文字型は''(シングルコーテーション)で囲む。文字列型は""(ダブルコーテーション)で囲む。
例)

example.java
int i;
String s;

i = 1;
s = "str文字列";
char c = 'あ';

ただし、型ごとに入れられる値が決まっているので気をつけてください。また、先に宣言をしていないといけません。
悪い例)

bad_example.java
int i;
String s;

i = "str文字列"; //整数型に文字列型
s = 2432; //文字列型に数字型
c = 'あ'; //宣言なし

型変換(キャスト)の仕方

【Java入門】キャスト(型変換)とアップキャスト、ダウンキャスト の内容をまとめたものです。
型変換とはある型を別の型に変換することです。自動で行われるものと宣言して行われるものがあります。
まず自動で分かりやすいのが下の例です。

example.java
int i = 2;
float f = i;

System.out.println("int i = " + i);
System.out.println("float f = " + f);

System.out.println(); は()内を文字として出力します。
このプログラムを実行すると、
int i = 2
float f = 2.0
が出力されます。
この場合、iとfは文字列型として扱われています。つまり、String型に変換されているということです。
また、float型のfにint型のiを代入できています。これは、iの値を自動でfloat型に変更しているからです。
今の例が自動で行われる型変換(キャスト)です。

次に、自分で行う場合です。自分で行う場合とはどういう事例があるか、一例をあげます。

example.java
String s1 = "9";
String s2 = "1";

System.out.println(s1 + s2);

このプログラムを実行すると、
91
が出力されます。それは、String型なので"9"という文字列と"1"という文字列を1つの文字列にするからです。しかし、ここで計算して10を出したい場合、以下のように記載します。

example.java
String s1 = "9";
String s2 = "1";

System.out.println(Integer.parseInt(s1) + Integer.parseInt(s2));

Integer.parseInt(); は()内の文字列をint型に変更する処理です。これにより、s1,s2の値をint型にして計算することができるので、出力結果は
10
となります。

型変換の仕方

数値型同士

数字型の場合、(型名)値でやり取り可。

number.java
int i = 1;
short s = (short)i;
float f = 2.4;
long l = (i+s+f);
System.out.println(l); //出力結果=5

数値→文字

String.valueOf();を使用する。 あるいは文字列と+で繋げる。

number.java
int i = 3;

System.out.println(String.valueOf(i)+2); //出力結果=32
System.out.println("番号" + i); //出力結果=番号3

文字→数字

int型以外は
[データ型名 (最初の文字のみ大文字)].parseデータ型名 (最初の文字のみ大文字); と記載する。
int型は
Integer.parseInt(文字); と記載する。

number.java
String s = 03;

int i = Integer.parseInt(s);
int l = Long.parseLong(s);

System.out.println(i); //出力結果=3
System.out.println(l); //出力結果=3

型変換の注意点

型変換には以下の注意点があります。
・型変換はあくまで受け取った値の型を指定するだけなので、変数名を入れたとしても元の変数の値の方は変更されません。
・受け取った値が変換したい方にあっていない場合、エラーが出ます。
・変換した結果、変換前と後で値が変動することがあります。

例)

bad_example.java
String s1 = "sss9";
String s2 = "1";
String s3 = "03";

System.out.println(Integer.parseInt(s1) + Integer.parsparseInt(s2); //"sss"部分は整数でないのでエラー
System.out.println(Integer.parseInt(s3)); //3と出力される。0は消える
System.out.println(s3); //03と出力される。上の行のInteger.parseInt(s3)の影響は受けない。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0