変数とは数値などのデータを入れて記憶させておく入れ物です。変数は自分で名前をつけることができます。名前は半角の英数字とアンダースコア"_"を組み合わせてつけますが、先頭文字は数字にしてはいけません。大文字と小文字を区別します。
class void for while do if else などプログラムに使用する約50語がキーワードとして予約されていますので、これは変数名としては使用できません。
a ○(一文字でもいいが) nensuu ○(単語の方がわかりやすい) abc2 ○(数字が入ってもいいが) 3nen ×(先頭が数字なのはだめ) a b ×(空白は含めることができない) a_b ○(そんなときはアンダーバーを使う) class ×(キーワードと一致) classA ○(キーワードを含むのはかまわない)
普通の変数は、小文字を使いましょう。クラス名(classの後ろに書く名前)も同様の規則になっていますが、習慣としてクラス名は大文字で始めます。また、特別な変数は全部大文字で書きます。これと区別するために普通の変数は、小文字を使います。
変数名は代入する値がわかりやすい名前にするのがよいとされています。
変数に値を入れます。
a = 53;
a という変数に 53 を入れます。
変数の現在の値を使用します。
System.out.println( a );
53と表示されます。
計算に使うこともできます。
System.out.println( a * 2 );
106と表示されます。
次の例は、身長から標準体重をいろいろな方法で計算するプログラムです。同じ身長を何度も書かなくてもいいように変数shinchouに入れて使っています。
変数を使うには、使用前に使用することを宣言しなければなりません。
double shinchou; が宣言の部分です。double は変数の種類(型)を表し、shinchouが変数名です。
shinchou = 168.4; が代入の部分です。
public class Hyoujun { public static void main( String[] args ) { double shinchou; shinchou = 168.4; System.out.print( "加藤法 : " ); System.out.println( ( shinchou - 50 ) * 0.5 ); System.out.print( "桂変法 : " ); System.out.println( ( shinchou - 100 ) * 0.9 ); System.out.print( "BMI : " ); System.out.println( shinchou * shinchou / 10000 * 22 ); System.out.print( "ローレル指数より : " ); System.out.println( shinchou * shinchou * shinchou /1000000 * 13 ); } }
実行結果はこのようになります。
加藤法 : 59.2 桂変法 : 61.56000000000001 BMI : 62.388832 ローレル指数より : 62.082559552000006
プログラムの中の 168.4 などの数値が身長を表すことが shinchou という変数の名前からわかります。これはプログラムを後から変更する時に役に立ちます。プログラムの中で一度しか使わなくても、変数を使う意味があります。
変数の宣言と代入を一度にすることもできます。
double shinchou = 168.4;
次の例は、身長と体重からローレル指数と、BMI値を求めるものです。身長(cm)を変数shinchou_cmに、体重を変数taijuuに入れることにします。BMIではmで計算するのでshinchou_mという変数も作りました。
public class BMI { public static void main( String[] args ) { double shinchou_cm = 168.4; double taijuu = 68.4; double shinchou_m; double rohrer; double bmi; rohrer = taijuu / shinchou_cm / shinchou_cm / shinchou_cm * 10000000; System.out.print( "ローレル指数:" ); System.out.println( rohrer ); shinchou_m = shinchou_cm / 100; bmi = taijuu / shinchou_m / shinchou_m; System.out.print( "BMI:" ); System.out.println( bmi ); } }
ローレル指数 = 体重(kg) ÷ 身長(cm)3 × 10000000
肥満の判定基準は160以上で一般には120~130
BMI=体重kg/(身長m)2
BMI値の標準は 20〜24
ちなみに、体脂肪率が考慮されていません。筋肉より脂肪の方が軽いので同じ体重なら体脂肪率の高い人の方が見た目には太っているはずですが、数値は同じになります。
double は変数の種類を表すものでした。これを変数の「型」といいます。double は小数をもつ可能性のある数値のための「型」です。この他にも変数の型がいろいろあります。
基本データ型には次のようなものがあります。
小数部分のある数として扱います。昔はfloatがよく使われましたが精度や扱える数の範囲を広げるため倍の大きさのdoubleという型が作られました。メモリが大きくなった今ではdoubleを使うのが普通です。
型 | バイト数 | 最小値 | 最大値 |
float | 4 | ±1.40239846×10-45 | ±3.40282347×1038 |
double | 8 | ±4.940655645841246544×10-324 | ±1.79769313486231570×10308 |
バイト数は使用するメモリの大きさです。
整数を入れます。小数点のある数は扱えません。int を使うのが普通です。
型 | バイト数 | 最小値 | 最大値 |
byte | 1 | -128 | 127 |
short | 2 | -32768 | 32767 |
int | 4 | -2147483648 | 2147483647 |
long | 8 | -9223372036854775808 | 9223372036854775807 |
特殊な型です。
型 | バイト数 | 格納する値 |
char | 2 | 文字コードを入れて文字を表す(ユニコードの仕様が変わりchar型で表せない文字が出てきたのでこれからはintを代わりに使う) |
boolean | true か false のいずれか | |
(String) | 可変 | 文字列。正確にはStringは変数の型ではなく可変長でもない。しかしdoubleやintと並べてよく使うので( )をつけて書いておく。 |
booleanまでの8種類(Stringを含まない)を基本データ型とよびます。
当面、整数なら int 、小数点を含む計算をするなら double と宣言しましょう。
上の Hyoujun.java BMI.java をつくりなさい。
x=3 , y=4 のとき x+y と xy と 2xy を表示するプログラムを作りなさい。
数学の問題なので変数はx,yをそのまま使いましょう。
この問題はintでもdoubleでも、どちらも使えます。
//の部分に x と y の宣言を書きます。
public class Hensuu { public static void main( String[] args ) { // 変数 x の宣言 // 変数 y の宣言 x = 3; y = 4; System.out.print( "x + y = "); System.out.println( x + y ); System.out.print( "xy = "); System.out.println( x * y ); System.out.print( "2xy = "); System.out.println( 2 * x * y ); } }
x=-2 , y=4 のとき x+2y と3x+5y を表示するプログラムを作りなさい。
円周率を3.14として、半径4.5 の円の円周の長さと面積を表示するプログラムを作りなさい。 円周の長さは 2πr、面積はπr2
変数名は任意ですが、浮動小数のものにする必要があります。double を使ってください。(floatでもいいのですが、落とし穴があります)。
たとえば hankei という変数にするなら、
double hankei; hankei = 4.5; (または、double hankei = 4.5;)
円周率は、次のように自分で設定します。
double pai; pai = 3.14; (または、double pai = 3.14;)
円周率は関数で出すことができます。これを使う場合は、3.14 の代わりに、Math.PI と書きます。大文字小文字を間違えないように。
double pai = Math.PI;