Diary of Traprogrammer

男の娘プログラマーが自分の生活や勉強模様について書いてます♪

初めてのJava 第6回〜ルールを覚えよう〜

どうも、Yuyoです!

前回は少し計算してみましたね。

前回は足し算だけですが、これから引き算や掛け算、割り算、そして、それらを組み合わせることで、複雑な計算も出来るようにしていきます!

ですが、その前に色々とみなさんに覚えていただきたいルールがあるので、今回はそれらを教えていきたいと思います。

ルールはかなり長いですが、頑張りましょう!

 

1.変数宣言の文

書き方: 型 変数名;

変数宣言の文とは、「新しい変数を準備して!」とコンピュータくんに指示する文です。変数とは、データをしまうためにコンピュータくんの中に準備する箱みたいなものです。変数からは数字や文字列などプログラムが扱う様々な情報を出し入れできます。

変数の実体はコンピュータくんのメモリにある区画です。変数に値を入れると実際にはメモリに値が書き込まれるんです。

実際に変数の利用例を見ていきましょう!

f:id:KiyuuUinagi0909:20190201195920p:plain

(クラス名のMainはあくまで便宜上付けてるものなので、そのままみなさんが使うと、一つのプログラムにしか使えないし、そもそもMainなんて名前つけたら、内容が分かりづらくなるのでやめましょう!(実際、ボクは教科書通りやって、保存できなくなったので...w))

では、何をしてるのか説明していきたいと思います。

まず、3行目でInt型の変数ageを用意します。

次に、4行目でageに20を代入します。

最後に、5行目でageの中に入れた20を画面に表示するよう、指示を出します。

 

イメージとしては、こんな感じ。

(分かりやすいように絵を描いてみましたが、下手ですいませんorz)

 

 

どうでしょうか?なんとなく、イメージできました?

では、次に行きます!

 

2.変数名の付け方

変数を宣言するとき、ボクたちは変数に名前を付ける必要があります。Javaプログラミングでは変数以外にも名前をつけるときがありますが、それらの名前として使える文字や数字、記号の並びを識別子と言います。

名前は基本、好きにつけていいのですが、普通はアルファベット、数字、_(アンダーバー)、記号を組み合わせて付けます。ひらがなや漢字も使えますが、あんまりお勧めはしません。それ以外にも、下に書かれてるいくつかのルールがあります。

予約語と言われる、名前に使えない単語が50個ぐらいあります。(例えば、intとかvoidとかpublicとか。詳しくは調べてみてください。ただ、よっぽどじゃないと、気にすることないです。)

・すでに使った変数名は使えません。

・大文字、小文字、全角、半角の違いは区別されます。

・小文字で始まる分かりやすい名前を付けるのが望ましいです。(例:車の名前だったりしたら、carAgeとか。あと、複数の単語をつなげて、変数名にする時は、2つ目以降の単語の先頭は大文字にします。)

・例外はありますが、1文字の変数名は避けてください。

 

どうですか?ルールが多いように見えますが、簡単に言うと、分かりやすい、被らない名前を変数名に選ぶことを心がけるということです。では、次行きますよー。

 

3.データ型

変数宣言に使うデータ型にはいくつか種類があります。色んな型がありますが、とりあえずは次の9つを覚えてもらえればOKです。

整数

・long ••• 大きい整数(±約900京)

・int ••• 普通の整数(±約21億)

・short ••• 小さな整数(±約3.2万)

・byte •••  さらに小さな整数(±約128)

小数

・double •••  普通の小数

・float ••• 精度の低い小数

真偽値

・boolean ••• true/false

文字

・char ••• 一つの文字

文字列

・String ••• 文字の並び

よく使うデータ型はint, double, booleanStringの4つです。

では、それぞれデータ型の解説をしていきたいと思います。

・整数が格納できる4つの型

long型、int型、short型、byte型の変数のは整数を代入できます。これら4つの型は箱の大きさ、つまりコンピュータ内部で準備されるメモリの量に違いがあります。そのため、代入できる値の範囲に制限があります。(上で書いた通りに)

例)

long worldPeople = 6900000000L;(Lはまた説明します)

int expense = 100000;

short age = 21;

byte glasses = 4;

例えば、byte型の変数を宣言した時は、消費するメモリは1バイトだけなので、これには-128~127までの数字しか代入できません。

一方、long型の変数を宣言した時は、8バイト消費しますが、およそ±900京というとても大きな整数を代入することができます。

ところで、どの型を使うのがいいのでしょうか?

最近のコンピュータは多くのメモリを搭載しているため、これら4つの型を厳密に使い分ける必要があるケースはなかなかありません。

多くの場合、int型を使う方が速く処理できることがあるので、整数を代入する場合は、基本int型を使うといいでしょう。

・小数を格納できる2つの型

doubleとfloatは「3.14」や「−15.2」といった小数を含む数値を代入するための型です。コンピュータの内部では小数を「浮動小数点」という形式で管理していることから浮動小数点型と総称されることもあります。

例)

double height = 168.5;

float weight = 52.5F;(Fはまた解説します)

doubleのほうがfloatより多くのメモリを消費しますが、より厳密な計算を行うことができます。そのため、特別な事情がない限りdouble型を使用します。

ここで、みなさんに覚えておいてほしいことがあります。

実は、浮動小数点方式には「真に厳密な計算が出来ない」という弱点があります。

つまり、計算を行った際にわずかな誤差が起こることがあります。普通は無視できるほど小さな誤差ですが、積み重なるとかなり大きな誤差となり、問題が起こることもあるのです。そのため、誤差が許されない計算、特にお金の計算にこれら小数の型を使ってはいけません!

・YesかNoかを格納できるboolean型

boolean型は、「YesかNoか」「本当か嘘か」「表か裏か」「成功か失敗か」という二者択一の情報を代入するための型です。肯定的情報を意味するtrue、否定的情報を意味するfalseのどちらかの値のみを代入できます。

例)

boolean rightside = true; (意味:例)コインは表面である)

boolean isSuccessful = true; (意味:成功している)

なお、trueは真、falseは偽という意味を持つので、boolean型のことを真偽値型という場合もあります。

・1文字だけを格納できるchar型、文字列を格納できるString型

char型は全角・半角を問わず「1文字」を代入できる型です。一方、String型は文字列(0文字以上の文字の集まり)を代入できる型です。具体的には次のように使います。

例)

char color = '青';

String instrument = "Guitar";

例にあるように、ソースコードに「文字」データを記述する場合は引用符(')で囲みます。「文字列」データを記述する場合は二重引用符(")を使います。このため、

「char color = "青";」とするとコンパイルエラーとなります。また、全角の引用符を使わないように注意してください。

 

4.変数の初期化

何のために変数宣言をするか。それは、変数にデータを入れたいから。

int age; (変数宣言の文)

age = 21;(ageに「21」を代入)

この文は1行にまとめて書くことも出来ます。

int age = 21;

このように「変数宣言と同時に値を代入すること」を変数の初期化と言います。

書き方: 型 変数名 = 代入するデータ;

 

5. 定数の利用

変数には異なる値を何度でも代入できます。変数に値を入れた後、別の値を代入するとどうなるかを画像を見てみましょう。

f:id:KiyuuUinagi0909:20190211205749p:plain画像では、まず変数ageを20で初期化してます。そして、2行後でageに26を代入してます。 

実行してみると、こんな感じで表示されるはずです。

私の年齢は21

•••いや、本当の年齢は26

この結果からわかる通り、変数の内容は新たな値26で上書きされ、古い値21は消滅します。

☆変数の上書き

すでに値が入ってる変数に代入すると、古い値は消え、新しい値に書き換わる。

しかし、中には書き換えられたくないものもあります。

そんなときはどうするか。こんな風に変数宣言してください!

final 型 定数名 = 初期値;

なお、定数名にはすべて大文字を用いるのが一般的です。

例)

final double TAX = 1.08;

物の値段に掛ける消費税は途中で変わるとえらいことになりますからね・・・

もし、変えられると困る変数を用いる時はこのように書きましょう。

 

では、ルールの解説はここで一旦終わります。いかがでしたでしょうか?

めっちゃ長いのに、最後まで読んでいただいてありがとうございましたm(._.)m

正直、筆者のボクも面倒臭くて、しかも無気力状態だったので、しばらく更新を開けてしまいました・・・(申し訳ないです)

明日から、また再開していきたいと思います!

また、ゲーム(MinecraftMTG、Hearthstone)についても、色々記事を書く予定なので、もしよければそちらも読んでみてください。

Yuyoでした!ではまた。