┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃.&&&& **** %%%%.  JavaScript&Javaで目指そう!基本情報技術者試験  ┃ ┃&&&&&&******%%%%%%  執筆&編集 斎藤末広 suehiro@he.mirai.ne.jp  ┃ ┃'&┃&''*┃*''%┃%'  発行    江口昌宏 ***  ┃ ┗━┻━━┻━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 広告募集:http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  第10号 2001/12/xx  変数の型の分類と基本型一覧 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  プログラムを作成する上での注意事項:  Windows とIE を前提としています。  拡張子を表示するに設定してください。 ------------------------------------------------------------------------ ▼ 変数のメリット 数学の公式が変数で表されいるのと同じように,プログラムを変数を利用する ことで,用途が広がります。  1+2+3+…+n の合計は,n(n+1)/2 と表現することで,n に自然数を代入するこ とで,いろいろな数字までの合計を求めることができます。 ------------------------------------------------------------------------ ▼ 変数の使い方  変数は,まず,宣言して利用します。Java の場合を見ます。 public class xSaikoro { // サンプルコード j09-01 public static void main(String[] xargs){ int xsai; xsai = 3; // サイコロの目が3であった場合 if (xsai % 2 == 0){ System.out.println("サイコロは偶数です。"); }else{ System.out.println("サイコロは奇数です。"); } } }  このプログラムでは  String[] xargs  int xsai;  のところが,変数の宣言です。Java では,変数を使用するとは,必ず,宣言 をする必要があります。JavaScript では,変数は宣言せずに使用することが できます。宣言をすることもできます。 ------------------------------------------------------------------------ ▼ 変数には型がある  変数は,型に分類されます。  上の例では,  String[] xargs  int xsai;  で,xargs は,String[] 型(文字列型でさらにその配列型)であること,xsai は,int 型(整数型) であることが宣言されています。  Java と JavaScript の変数は,大きく分けて,基本型と参照型があります。 さらに Java では,詳細に分けると次のようになります。  基本型 真偽値型(boollean) 数値型 整数型(バイト型,文字型,短整数型,整数型,長整数型) 実数型(単精度実数型,倍精度実数型)  参照型(広い意味でのクラス型) クラス型(一般的なクラス型,例外として配列型と文字列型)   インターフェース型 参照:http://www.mirai.ne.jp/~suehiro/java/yougo.htm#Types  JavaScript の変数の型は,プログラムが実行中に決定して,どんどん変化を していきます。分類は,Java とほぼ同じで,たぶん,整数型の種類が少ないか なと思います。詳しくは,調べていません。わかり次第,このJマガで扱います ね。 ------------------------------------------------------------------------ ▼ 基本型と参照型  基本型と参照型を簡単に説明します。  数学の変数と同じようなものが,基本型です。この場合は,a = 3 とすると, a の中身が 3 になります。代表的な型は,整数型です。  参照型は,a = xxトラック1台分のリンゴ のように使用して,a には,トラック がおいてある駐車場等の番号が入ります。a の中にリンゴが入るのではなくて, ただの番号(アドレス)が入るだけです。代表的な型は,文字列型です。文字列 はコンピュータの主記憶では,変数とは別の場所に格納されて,文字列型の変数 はその文字列の格納先の番地を持ちます。基本型の場合は,変数のある場所に 値そのものが格納されています。  参照型の変数の場合,代入において,たとえば,1000 字の文字列を代入せず に,その保存先の先頭のアドレスのみを代入します。ですから,高速に処理が 行えます。  基本型 a = 3; a という箱に,3 が入っている。数学の変数と同じ。  参照型 b = "This is a pen."  b という箱には,"This is a pen." が保管してある倉庫の番号札が入っている。 こんなイメージです。 ------------------------------------------------------------------------ ▼ 基本型の分類  参照型を構成する要素は,基本型です。基本型が基本になります。  基本型は,真偽値型,数値型に分かれます。真偽値型は,ブール代数という数 学から来ているため,ブール型とも言われます。  数値型は,整数を扱う型と小数(実数)を扱う型に分かれます。  整数は一つの数字を保存するに必要な記憶容量でさらに型が分類されます。そ れぞれ,その容量から,数字の最小値と最大値が決まります。  小数(実数)を扱うのは,コンピュータ内部では,浮動小数点型です。 0.1111 × 10^3 のような形です。10^3 の 3 の値が変われば,小数点が移動し ます。そのため,浮動小数点形式と言われています。これによって,理工学的な 計算を効率的に実行できます。浮動小数点の演算は,整数の演算に比べて,処理 速度が遅くなりまた,記憶エリアもたくさん必要ですので,整数演算でできるも のは,整数演算でプログラムを作成します。 ---------------------------------------------------------  記号 日本語 記憶容量 数字の範囲 --------------------------------------------------------- byte バイト型 1 バイト -128 から 127 char 文字型 2 バイト 0 から 65536 shot 短整数型 2 バイト -32768 から 32767 int 整数型 4 バイト -2^31 から (2^31-1) long 長整数型 8 バイト -2^63 から (2^63-1)   float 単精度型 4 バイト double 倍精度型 8 バイト boolean 真偽値型 1 ビット ---------------------------------------------------------                2^31 は,2 の 31 乗を表します。  文字型が数値型の中の整数型入るのは不思議は感じがすると思います。文字は コンピュータ内部では,整数に対応しています。そのため,文字型は,整数型の 一部と見なす方が自然になります。  以下は,基本型一覧のサンプルです。 public class xType { // 基本型一覧サンプルコード j10-01 public static void main(String[] xargs){ boolean xyes = true; boolean xno = false; byte xb = -127; char xch = 65535; short xshort = -32767; int xint = 77777; // 末尾に i は必要なし int xint_MIN = Integer.MIN_VALUE; int xint_MAX = Integer.MAX_VALUE; long xlong = 77777L; // 末尾に L が必要 long xlong_MIN = Long.MIN_VALUE; long xlong_MAX = Long.MAX_VALUE; float xfloat = 0.5f; // 末尾に f が必要 float xfloat_MIN = Float.MIN_VALUE; float xfloat_MAX = Float.MAX_VALUE; double xdouble = 0.5; // 末尾に d は必要なし double xdouble_MIN = Double.MIN_VALUE; double xdouble_MAX = Double.MAX_VALUE; System.out.println("真: " + xyes); System.out.println("偽: " + xno); System.out.println(""); System.out.println(" byte 型の最小値: " + xb); System.out.println(" char 型の最大値: " + xch); System.out.println("short 型の最小値: " + xshort); System.out.println(" int 型の例 : " + xint); System.out.println(" int 型の最小値: " + xint_MIN); System.out.println(" int 型の最大値: " + xint_MAX); System.out.println(" long 型の例: " + xlong); System.out.println(" long 型の最小値: " + xlong_MIN); System.out.println(" long 型の最大値: " + xlong_MAX); System.out.println(""); System.out.println(" float 型の例 : " + xfloat); System.out.println(" float 型の最小値: " + xfloat_MIN); System.out.println(" float 型の最大値: " + xfloat_MAX); System.out.println("fdouble 型の例 : " + xdouble); System.out.println("fdouble 型の最小値: " + xdouble_MIN); System.out.println("fdouble 型の最大値: " + xdouble_MAX); } } ------------------------------------------------------------------------ ▼ 整数は,int,浮動小数点は double が基本  計算するときに,  整数の演算で間に合う場合は,整数型(int),  実数を扱うときは, 倍精度浮動小数点型を中心にされるといいでしょう。  上の例で値を設定しているところ byte xb = -127; char xch = 65535; short xshort = -32767; int xint = 77777; // 末尾に i は必要なし int xint_MIN = Integer.MIN_VALUE; int xint_MAX = Integer.MAX_VALUE; long xlong = 77777L; // 末尾に L が必要 long xlong_MIN = Long.MIN_VALUE; long xlong_MAX = Long.MAX_VALUE; float xfloat = 0.5f; // 末尾に f が必要 float xfloat_MIN = Float.MIN_VALUE; float xfloat_MAX = Float.MAX_VALUE; double xdouble = 0.5; // 末尾に d は必要なし double xdouble_MIN = Double.MIN_VALUE; double xdouble_MAX = Double.MAX_VALUE; をみると,整数型(int型)と倍精度浮動小数点型(double型)は,数字の末尾に型 を表す記号を省略することができます。これに現れているように,Java の多く の場面で,整数演算は,整数型(int型),実数演算は,倍精度小数点型(double型) が使われていると予想できます。 ------------------------------------------------------------------------ ▼ 次号の予定  演算子 計算で使われる記号  真偽型,浮動小数点型,さらに,参照型は別の号でゆっくりと扱います。  感想は,斎藤まで,suehiro@he.mirai.ne.jp  広告等のお問い合わせ:*** ------------------------------------------------------------------------ ▼ 誤字・脱字等の修正,プログラムの修正など,以下の場所で確認できます。 過去の修正版等  http://www.mirai.ne.jp/~suehiro/java/jmaga/ 登録・削除および広告の案内  http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ------------------------------------------------------------------------ ▼ 著作権について  このメールマガジンで公開しているプログラムソースは,著作権を当方スタッ フが所有しますが,商用を含めて,再利用,改変,発表を制限しません。  本文に関しては,斎藤末広が著作権を所有します。再利用に関しては,承諾を 必要とします。 広告募集 http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ------------------------------------------------------------------------ ▼アンケート(以下を返信してください)  この号のJマガは役立ったあるいは勉強になりましたか? 該当するものだけ残してください。 5: 大いに,YES 4: YES 3: 普通 2: NO 1: 大いに,NO その他