こんにちは。「Javaを復習する初心者」です。
今回はEclipseでJava入門の2回目を書きます。前回の説明ではコンソールに文字列や計算結果を出力するところまで説明しました。今回は変数について説明しようと思います。ただし、変数には型と呼ばれる種類があり、今回説明するのはint型とdouble型です。
lesson2パッケージにMainクラスを作成して、プログラムすることにします。
税込み価格を計算
「商品の税込み価格を計算し、出力する。」というのを題材にします。例えば、100円の商品で消費税8%の場合の税込み価格を出力してみます。税込み価格の計算で必要な掛け算は「*」記号を使います。前回はSystem.out.printlnしか説明してないので、この時点では以下のようなプログラムが思いつくのではないでしょうか。
ソース
package lesson2;
public class Main {
public static void main(String[] args) {
System.out.println(100 + 100 * 0.08);
}
}
結果
108.0
説明してませんでしたが、整数の他に小数を扱うことができます。このままでは結果が小数表示ですが、先に変数の説明をするため、結果が小数表示であることはこの時点では気にしないことにします。
変数を使う
上記のプログラムで登場する数値は「100」と[0.08]です。変数を使ってこの2つの数値を扱うと以下のようなプログラムになります。
ソース
package lesson2;
public class Main {
public static void main(String[] args) {
int price = 100;
double taxRate = 0.08;
System.out.println(price + price * taxRate);
}
}
行末のセミコロンは命令の区切りだと思ってください。最初のうちはとにかく必要なものなのだと思えばよいでしょう。セミコロンを忘れると、Eclipseが赤線を表示します。赤線の上にマウスカーソルを載せると「構文エラーがあります。”;” を挿入して BlockStatements を完了してください」というメッセージがポップアップで表示されます。この表示がでたら、セミコロンを入力してください。(半角セミコロンです。)
変数は数値を入れておく箱をイメージするとわかりやすいと思います。変数を使うには変数宣言という定めった書式からなる行を書く必要があります。基本形は以下の形です。
[変数の型] [変数名] = [初期値];
「変数の型」とは大雑把にいえば、変数の範囲を規定する文言です。6行目のintは整数を扱うときの型のひとつです。intの他もありますが整数ならばintが基本です。その次のpriceは変数名で自由につけられますが、今は目的がはっきりしているため分かりやすい命名にしました。キャメルケースという表記に従って、先頭を小文字にしています。6行目は整数を格納する箱で、箱の名前をpriceで定義し、100という数値を格納しているという意味です。次の行も同じような読み取り方ですが、小数を扱う場合はdoubleという型が基本です。次の図は大雑把に変数の格納のイメージを説明した図です。
変数名を使うと、その変数名を後で使うことができます。(使える範囲については今は省略します。)上記プログラムではprintlnの括弧の中の計算式で変数名を使っています。使えるのは宣言した変数名ですので、スペルミスをするとEclipseが赤線を引きます。(スペルミスというより、宣言されてない変数名を使用した場合と言った方が正確かもしれません。)修正候補が表示される場合はそれをクリックすると修正されます。
計算結果を格納
変数に計算結果を格納することができます。上記プログラムではprintlnの括弧の中に直接計算式を書いていますが、これを次のように書くこともできます。
ソース
package lesson2;
public class Main {
public static void main(String[] args) {
int price = 100;
double taxRate = 0.08;
double priceIncludedTax = price + price * taxRate;
System.out.println(priceIncludedTax);
}
}
上記プログラムではpriceIncludedTaxというdouble型の変数に計算結果を格納しています。右辺の結果を左辺で指定した変数に格納することができます。詳細は省略しますが、左辺はdouble型の変数taxRateがあるため結果が小数になります。なので左辺の変数はdouble型である必要があります。taxRateの型をintに書き換えるとEclipseが右辺に赤線を引きます。double型の値をint型の変数に格納できないのでエラーがEclipseによって表示されます。マウスカーソルを右辺の上に置くと内容がポップアップで表示されます。
ポップアップの中で「キャストを’int’に追加します」をクリックしましょう。ソースが次のように修正されたと思います。実行してみると結果は整数で表示されます。
ソース
package lesson2;
public class Main {
public static void main(String[] args) {
int price = 100;
double taxRate = 0.08;
int priceIncludedTax = (int) (price + price * taxRate);
System.out.println(priceIncludedTax);
}
}
結果
108
「(int) (price + price * taxRate)」は「price + price * taxRate」の結果をint型に変換するときの書き方です。キャストといいます。double型をint型に変換してくれますが、小数点以下は切り捨てになります。
変数の型としてint型とdouble型を紹介しました。この2つはプリミティブ型と呼ばれる分類に属す型です。プリミティブ型は箱の中に直接値が入っているイメージで良いと思います。
算術演算子
「+」記号や「*」記号を使いましたが、これらは算術演算子と呼ばれるものの一部です。算術演算子は以下があります。
演算子 | 内容 |
---|---|
+ | 足し算 |
– | 引き算 |
* | 掛け算 |
/ | 割り算の商 |
% | 割り算の余り |
このうち、「/」と[%]の使い方ですが、演算子の右側が0以外で使います。もし0にした場合、実行時にエラーが発生します。(1/0などエラーです。)