メインコンテンツへスキップ

【Java勉強-第2回】変数について

·☕5分
#テック系 #Java
Rakuichi
著者
Rakuichi
ヴィッセルサポのIT屋
目次
Java入門 - こちらの記事はシリーズ掲載です
Part 2: 本記事

お久しぶりです。 修士論文やら学会に提出する論文やらで、ブログを更新するのをサボってしまっていました。

さて、今回は第2回ということで、 Javaの変数について色々基本的なことを学びましたので、まとめていこうと思います。

随所でPythonになれきってしまった私が注意するポイントがありましたので、そのあたりを特に意識して記録していこうと思います。

統合開発環境のEclipceを使った基本的な出力については、下記URLにて触れていますので、そちらをご覧ください。 【Java勉強-第1回】EclipceでHello World!

変数
#

今回使ってみた変数型は以下のとおりです。

  • 文字型(char)
  • 文字列型(String)
  • 整数型(int, long, short, byte)
  • 少数型(float, double)
  • boolean型(boolean)

文字型から触りだしたのは、 普段研究でPythonを使ってテキストデータを扱っているので、一番感覚的に差が出るかなと思ったからです。

Pythonでは変数の型について、逐一定義する必要はなかったのですが、基本的にソッチのほうが珍しいですよね。

文字型(char)
#

  • 1文字のみ格納可能
  • char で定義
  • 格納する文字は シングルクォーテーション「’」 で囲う

気をつけないといけないのは、 格納する文字を必ずシングルクォーテーションでで囲うということですね。 Pythonでは考えないことなので注意が必要です。

// 値の格納
char c = 'あ';

文字列型(String)
#

  • 文字列を格納
  • String で定義 (一文字目が大文字)
  • 格納する文字列は ダブルクオーテーション「"」 で囲う

最も気をつけないといけないのは、文字型の「char」とは違って、「String」の「S」が大文字であることです。

また、文字列型はダブルクオーテーション「""」で囲う必要があります。

文字型とは違うので気をつける必要があります。

String s = "ヴィッセル神戸が大好き";

整数型(int, long, short, byte)
#

  • 整数を格納
  • byteで定義した場合は8ビット(-128 ~ 127)
  • shortで定義した場合は16ビット(-32768 ~ 32767)
  • int で定義した場合は32ビット(-2,147,483,648 ~ 2,147,483,647)
  • longで定義した場合は64ビット( -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
  • longで定義した場合は値の語尾に 「L」または「l(小文字のエル)」 をつける
    • 大文字推奨 :小文字のエルは数字の「1」と間違う可能性があるため

気をつけるポイントはlongで指定した場合に、 値の語尾に 「L」または「l(小文字のエル)」 をつけることです。

小文字のエルは数字のいちと見間違えることがあるので、基本は大文字が推奨されているようです。ちなみに、小文字のエルと数字の1を並べるとこんな感じです 1l

また、それぞれの型で格納できる値が決まっています。これらの値を超えると 桁あふれ がおきます。

int x , y, z;
long lx, ly, lz;

x = 1;
y = 2;
lx =100000L;
ly =200000L;

桁あふれ
#

桁あふれについてどのような挙動を取るかを確認します。

int 型の変数に格納できる最大値を格納し、その変数に+1したものを出力してみます。

そうすると桁あふれが起きて、下記のように最小値が出力されています。 この桁あふれには注意しないといけません。

// 格納できる最大値の格納
int max_num = Integer.MAX_VALUE;

System.out.println(max_num);
System.out.println(max_num + 1);

--結果--
//最大値
2147483647
//桁あふれ後
-2147483648

少数型(float, double)
#

  • 少数を格納
  • floatで定義した場合は32ビット単精度浮動小数点数
  • floatで定義した場合は値の語尾に「F」または「f」をつける
  • doubleで定義した場合は64ビット単精度浮動小数点数

こちらは同じ数字でも小数を含むものを扱う場合に用います。

float fx, fy, fz;
double dx, dy, dz;

fx = 0.01F;
fy = 0.02F;
dx = 0.0003;
dy = 0.0004;

割り算について
#

数字を用いた演算子では + - * / % の5つがあると思います。 ここで気をつけないといけないのは割り算関係の / %の2つになります。 まず整数型のintを用いた場合の挙動の確認してみます。

例として1/2、5/2、1%2、5%2の結果について見てみます。

int x , y, z;
x = 1;
y = 2;
z = 5;
System.out.println(x / y);
System.out.println(z / y);
System.out.println(x % y);
System.out.println(z % y);

--結果--
0 // 1/2の結果
2 // 5/2の結果
1 // 1%2の結果
1 // 5%2の結果
----

整数型同士の割り算ではこのように、 余りを出す割り算を行っていると考えることができます。 そのため/では商が%では余りが演算結果となります。
続いて少数型を用いた結果を見てみます。

float x , y, z;
fx = 1F;
fy = 2F;
fz = 5F;
System.out.println(fx / fy);
System.out.println(fz / fy);
System.out.println(fx % fy);
System.out.println(fz % fy);

--結果--
0.5 // 1/2の結果
1.5 // 5/2の結果
1.0 // 1%2の結果
1.0 // 5%2の結果
----

少数型の場合は、/の場合、少数を使って割り切った結果を示します。 %に関しては整数型のときと同様で、余りを出す割り算を行った場合の余りが結果となります。

boolean型(boolean)
#

  • true か false を格納する変数

if文とか使う時に利用するイメージです。

boolean tflag = true;
boolean fflag = false;

まとめと感想
#

今回は変数について色々見てみましたが、 久しぶりに変数型を宣言する言語に触れたので、懐かしさを感じました(笑)。

文字型と文字列型のシングルクォーテーションとダブルクォーテーションの使い分けには、特に気をつけようと思います。

次は簡単なfor文と条件分岐についてやっていこうかなと思います。

Java入門 - こちらの記事はシリーズ掲載です
Part 2: 本記事

スポンサードリンク

Related

【Java勉強-第4回】キーボード入力と文字列の連結
·☕5分
#テック系 #Java
【Java勉強-第3回】簡単なif・else文
·☕3分
#テック系 #Java
【Java勉強-第1回】EclipceでHello World!
·☕3分
#テック系 #Java
miseとpoetryでPython環境構築 + miseのtask利用
·☕5分
#テック系 #mise #Python #Poetry #Streamlit #環境構築