変数とは数値などのデータを入れて記憶させておく入れ物です。変数は自分で名前をつけることができます。名前は半角の英数字とアンダースコア"_"を組み合わせてつけますが、先頭文字は数字にしてはいけません。大文字と小文字を区別します。
class void for while do if else などプログラムに使用する約50語がキーワードとして予約されていますので、これは変数名としては使用できません。
abc2 ○ 3nen ×(先頭が数字) class ×(キーワードと一致) classA ○(キーワードを含むのはかまわない) a b ×(空白は使えない) a_b ○
普通の変数は、小文字を使いましょう。クラス名(classの後ろに書く名前)も同様の規則になっていますが、習慣としてクラス名は大文字で始めます。また、特別な変数は全部大文字で書きます。これと区別するために普通の変数は、小文字を使います。
変数を使うには、使用前に使用することを宣言しなければなりません。
次の例では、int x; int y; が宣言の部分です。
public class Hensuu { public static void main( String[] args ) { int x; int y; x = 3; y = 4; System.out.println( x + y ); System.out.println( x * y ); } }
intは整数を表します。 x y が変数の名前、; が文の区切りです。x と y という名前の変数を整数をいれる変数として宣言したということです。その後、3,4をそれぞれ代入して利用しています。
int x; int y; はまとめて書くこともできます。
int x, y;
宣言のあと、値を一度も代入したことがなければ参照することができません。注意が必要です。
次のようにすれば、宣言と代入を同時におこなうことができます。値の初期化をするときに便利です。
public class Hensuu { public static void main( String[] args ) { int x = 3; int y = 4; System.out.println( x + y ); System.out.println( x * y ); } }
同じ名前の変数を宣言するとエラーになります。宣言はその名前で「保存するデータの場所を確保せよ」ということなので、名前が同じ場所を2つ作ると区別できなくなるとjavaが考えるからです。
これに対して代入は何度でもできます。データを入れ替えるだけです。
intは整数をいれる変数という意味でした。これを変数の「型」といいます。intの他にも変数の型がいろいろあります。次の8種類を基本データ型とよびます。
基本データ型には次のようなものがあります。
整数を入れます。バイト数は使用するメモリの大きさです。1バイトあると二進法で8桁の数を扱うことができます。正確ですが小数点以下の部分は扱えません。
型 | バイト数 | 最小値 | 最大値 |
byte | 1 | -128 | 127 |
short | 2 | -32768 | 32767 |
int | 4 | -2147483648 | 2147483647 |
long | 8 | -9223372036854775808 | 9223372036854775807 |
小数部分のある数として扱います。浮動小数というのはコンピュータの世界で昔から使われている用語です。これは数をまず整数で表してそれに小数点がどこにあるかの情報を加えるたものです。整数は小数点が右端に固定されていると考えられるので、小数点を動かすこの方法で表すものを浮動小数とよんだのです。
型 | バイト数 | 最小値 | 最大値 |
float | 4 | ±1.40239846×10-45 | ±3.40282347×1038 |
double | 8 | ±4.940655645841246544×10-324 | ±1.79769313486231570×10308 |
浮動小数での表し方を多少の不正確さに目をつぶって10進法で解説すると、たとえば 123.45 を表す場合、 123.45 = 0.12345×103 なので、12345003 と表します(03123450というやり方もあります)。ただし、データの長さが10進法で8桁として、仮数部(0.12345の部分)に6桁、指数部(3の部分)に2桁使う場合です。
浮動小数は整数より広い範囲の数を扱えますが、計算途中の丸め(四捨五入のようなもの)により誤差が出ることがあります。特に2進法で計算する関係上、10進法と誤差の出方が違うので注意が必要です。会計処理など厳密性が必要な場合は、整数型を使ったり、10進法で計算する特別な方法を使います。
型 | バイト数 | 格納する値 |
char | 2 | 文字コードを入れて文字を表す |
boolean | true か false のいずれか |
文字列にはまた違う方法がありますが、文字列は基本データ型に入っていません。あとで解説します。
x=-2 , y=4 のとき x+2y と3x+5y3 を表示するプログラムを作れ。
この問題では、int x; でも double x; でもどちらでもできます。
円周率を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;