石田修二 > コンピュータメモ > 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