石田修二 > コンピュータメモ > Java > (サイト内検索)
ここでは「値を器に入れて持ち運ぶ」という手法を学びます。
public class Val { public static void main(String[] args) { int a; int b; int x; a = 10; b = 20; x = a + b; System.out.println(x); } }
変数の中に入っている値を調べることを,変数を参照すると言います。
これも変数のサンプルプログラム。
public class Var1 { public static void main(String[] args) { // 文字列型の変数 String name; // 整数型の変数 int sansu; int kokugo; int goukei; // 変数に値を代入する name = "石田修二"; sansu = 70; kokugo = 80; goukei = sansu + kokugo; // 変数の値を表示する System.out.println("名前:" + name); System.out.println("算数:" + sansu); System.out.println("国語:" + kokugo); System.out.println("合計:" + goukei); } }
生徒の名前と算数と国語の点数,そしてそれらの合計点を「変数」に格納し,それらの値を表示するプログラムです(佐藤滋『ちょっとはじめる Java』p107より)。
/* 変数を使うプログラム * */ public class Var1 { public static void main(String[] args) { // 文字列型の変数 String name; // 整数型の変数 int sansu; int kokugo; int goukei; // 変数に値を代入する name = "石田修二"; sansu = 70; kokugo = 80; goukei = sansu + kokugo; // 変数の値を表示する System.out.println("名前:" + name); System.out.println("算数:" + sansu); System.out.println("国語:" + kokugo); System.out.println("合計:" + goukei); } }
同じ型の変数はカンマで区切って1行で行うことができます。この例であれば,
int sansu, kokugo, goukei;
同じデータ型の値を,複数まとめて格納できる箱のようなもの。必要とする要素の数だけメモリ領域を確保します。配列を使うと,それぞれの値を順番に処理できます。
public class Basic2 { public static void main(String[] args) { // 配列の宣言 String[] name; // 配列に格納する要素のメモリ領域を3つ確保 name = new String[3]; // 配列への値の格納 name[0] = "日替わり幕の内弁当"; name[1] = "スペシャル洋食弁当"; name[2] = "唐揚げ弁当"; // 値の出力 System.out.println("1番目の配列:" + name[0]); System.out.println("2番目の配列:" + name[1]); System.out.println("3番目の配列:" + name[2]); } }
数値計算における型の違いに注意する必要あり。数値を代入する変数には整数型と実数型があります。これらは「数値」を代入しておくものですが,その精度によって型が分かれています。
具体的に以下のプログラムを見てみましょう。
/* * 自動変換の注意 */ public class henkan { public static void main(String[] args) { // 整数型変数 a と b を宣言 int a = 1, b = 2; // 実数型変数 f を宣言 double f; // 文字列変数 s を宣言 String s = "平均は "; // 2 で割る場合 f = (a + b) / 2; // 全て整数型 System.out.println(f); // 2.0 で割る場合 f = (a + b) / 2.0; // 2.0 という実数型が混じっている System.out.println(f); } }
a と b にそれぞれ 1 と 2 が代入されています。これら2つの数字の平均値を計算し,その答えを実数型の変数 f に代入することを考えます。
平均値ですから,2つの数字を足して2で割ります。このとき 2.0 で割るという式を書く場合と 2 で割るという式を書いた場合で答えが異なります。
前者は全て整数型(a,b,2全て)なので,計算自体が整数で行われ,結果も整数となります。したがって,答えも小数部分が切り捨てられ,1 となってしまいます。
一方,後者のように,2.0で割り算を行う場合,2.0 は実数型なので,整数型と実数型が混在した演算になります。この時,Java は最も計算精度の高い型に変換してから演算を行います。このケースでは整数型であった a と b の2つの変数は実数型に変換されて,実数の精度で演算が行われます。その結果,1.5 という答えになります。
ポイントは 1つでも実数型があると,実数で計算 ということです。
10と15を足して2で割る計算を行いなさい。この時,2で割った答えと,2.0で割った答えの二つを表示するようにして下さい。
答えの一例
public class CalcMean { public static void main(String[] args) { int a = 10, b = 15; double f; f = (a + b) / 2; System.out.println(f); f = (a + b) / 2.0; System.out.println(f); } }
リンクはご自由にどうぞ。
【石田修二トップページ】 【コンピュータメモ】 【Java】
Last modified: 2017-02-02 00:14:07