【更新情報 2012年11月18日】

 double型の値の範囲を訂正しました。 

   誤  ±1.79769313486231570E+380

   正 ±1.79769313486231570E+308

 不正確な情報を載せてしまい、申し訳ありませんでした。

 今後とも正確でわかりやすい情報を提供するよう努めていきます。 HO




HOです。


本日23時までには公開とお伝えしましたが、

大変お待たせ致しましたm(_ _)m


前回、変数とは何かについて考えました。

今回は、Javaで用意されている具体的な変数の種類や大きさについて取り上げてみたいと思います。



以下は、変数の特徴をまとめた表を取り上げます。

この表では、型・大きさ・データの範囲を記しています。

簡単にこの表について説明します。



まず、「型」というのは、変数の種類といえるでしょう。

型ごとに、扱うデータの種類・大きさ・データの範囲が異なります。



「大きさ」というのは、パソコンのメモリーの中に確保するデータ量のことです。

単位は「byte」という単位を使います。

最近のパソコンのメモリですと2GBとか4GBとかあると思いますが、

例えば2GBをbyte換算すると、約21億Byteとなります。

こう考えると、byteという単位は、大変小さな単位だということになりますね。



「データの範囲」というのは、扱えるデータの範囲です。
変数の大きさによって、扱える範囲が異なります。

もちろん、変数のサイズが大きいほうが、扱える範囲も広くなります。




それでは、大きな型の種類ごとに、どんな変数型があるか取り上げてみたいと思います。

以下で取り上げる変数の型は「基本データ型」と呼ばれるタイプです。

「基本データ型」とは何かについてですが、ロッカーの例で簡単に説明すると、

「基本データ型」は、ロッカーに直接物を預けるタイプです。


これではまだすっきりしないと思いますが、次回さらに詳しく説明させていただきます。




整数型


小数点などない、整数型です。

扱える数字の範囲に応じて、4種類あります。

大きさ データの範囲
byte 1byte -128~+127
short 2byte -32768~+32767
int 4byte -2147483648~+2147483647
long 8byte -9223372036854775808~+9223372036854775807





浮動小数点型の変数


小数点がある、浮動小数点型です。

今後のプログラムで取り上げたいと思います。


大きさ データの範囲
float 4byte ±3.40282347E+38~±1.40239846E-45
double 8byte ±1.79769313486231570E+308~±4.94065645841246544E-324


  データの範囲の最後にある「E+308」とか「E-324」とありますが、

  これは「指数」をあらわし、

  例えば「E+308」は「10の308乗」という意味です。


文字型

文字型です。

Unicode文字という文字一覧表に基づいて、

16進数表記で、特定の1文字を表します。

1文字というのがポイントで、

2文字以上は受け付けられないのが、この文字型です。

2文字以上はどうするのかと言う点は、今後取り上げます。


大きさ データの範囲
char 2byte Unicode文字 ¥u0000~¥uFFFF




論理型


True・Falseの2種類の値しかない論理型です。

条件分岐というプログラムなどで使われます。

これも今後のプログラムで取り上げられることになるでしょう。


大きさ データの範囲
boolean 1bit(1/8byte) True,False







このように変数には様々な種類があります。

ところで、前回取り上げました「myStringA」という変数はどの型でしょうか?

--------------------------------------------------------------------

String myStringA = myReader.readLine();

--------------------------------------------------------------------

という記述ですね。



変数の宣言は

-------------------------

  データ型 変数名;

-------------------------

という記述をするわけですから、

「myStringA」は「String」という型になりますね。



でも「String」は上記の型の中には出てきませんでした。

ということは「基本データ型」ではないということです。



「String」の正体は何か?

次回、お楽しみに(!?)

HOです。


前回、時間の関係で、途中までの説明となりましたが、

今回、その続きを説明したいと思います。

もし前の記事をまだ読まれていないようでしたら、

まず前回の記事をご覧になられてから、

この記事を読んでいただくと、

流れをつかんでいただきやすいかと思います。(前回の記事はこちら




現在、

キーボード入力の基本プログラムをアレンジして、

①「特定の人数分の分量」と「知りたい人数」の入力を受け取り、

②その情報を画面上に表示する。

というプログラムを作成しようとしているわけですが、


キーボードで入力を受け付ける情報を、

複数受け付けられるように改良するために、

--------------------------------------------------------------------

String myStringA = myReader.readLine();

--------------------------------------------------------------------

としました。


ここで、アレンジした部分は、「myStringA」という部分でした。

なぜそうしたかというと、

ここが「変数」であることに関係すると説明しました。

今回は、「変数」とは何か簡単に考えたいと思います。




変数


かなり大雑把な説明をすると、

・変数とは、データを一時的に記憶する特定の場所であり、

・変数を宣言するとは、

 パソコンの一時的に記憶する場所の一部を、

 このプログラムで利用するためにお借りすることをいいます。




例えてみるなら、

コインロッカーをイメージできるかもしれません。


パソコンには、

さまざまな情報を一時的に保管できる大規模なコインロッカーのような場所があり、そのロッカーの中の一部を、いま私が作成しているプログラムに使用するデータの一時的保管場所としてお借りする。

というようなイメージです。



お借りしたロッカー(変数)は、

自由にデータを出し入れできます。




では、どのようにして変数を宣言するのでしょうか?

変数の宣言は、次のような文で記述します。

-------------------------

  データ型 変数名;

-------------------------



データ型というのは、データの種類や大きさのことを言います。

ちょうど、ロッカーにもいろいろな種類があるのと同じです。



データの種類とは、文字なのか、整数の数字なのか、小数点付の数字なのか等です。

  ちょうどコインロッカーにも、貴重品を入れるロッカーや、

  靴を入れるロッカー、服やかばんを入れるロッカーがあるようなものです。



データの大きさとは、どれくらいのデータを記録できるかということです。

 具体的には、「-128~+127」までのデータしか保管できないのか、

 「-32768~+32767」までのデータが保管できるかなどです。


 靴を入れるロッカーでも、

 スニーカーまでしか入らない大きさのロッカーもあれば、

 長いブーツを入れることの出来るロッカーもあるようなものです。


データ型を指定して変数を宣言することにより、

こちらの希望に合った"ロッカー"を確保してくれるわけです。



では、Javaで使える変数には、どのようなものがあるでしょうか。

この点は、次回9月29日(土)23時までに更新したいと思います。

どうぞよろしくお願い致します。

HOです。


前回、キーボードで何か文字を入力し、実行すると、

受け取った文字を使って、画面に表示させるプログラムを作成しました。


今回は、この記述をアレンジして、

「特定の人数分の分量」と「知りたい人数」の入力を受け取るようにしたいと思います。



まず、前回の記述を下記に記します。

--------------------------------------------------------------------

class InputTest{


 public static void main(String args[]){


  java.io.BufferedReader myReader =

   new java.io.BufferedReader( new java.io.InputStreamReader(System.in),1);



  try{


   System.out.println("文字を入力してください");


   String myString = myReader.readLine();


   System.out.println("入力された文字: " + myString);


  }catch(java.io.IOException e){
  }


 }


}

--------------------------------------------------------------------



この中で、アレンジする部分は、

①入力を求めるメッセージを画面に表示する部分

②キーボード入力を受け取る部分

③受け付けた情報を画面に表示する部分

です。



ここで、受け取るデータを

  「分量」

  「(入力した人数が)何人分の分量か」

  「何人の分量を知りたいか」

の3点に増やしたいと思います。




①の記述に該当するところは、

--------------------------------------------------------------------

System.out.println("文字を入力してください");

--------------------------------------------------------------------

です。



ここを意図する内容となるようにどのようにアレンジしましょうか?

メッセージは自由に入力できますが、わたしはこのように入力しようと思います。

--------------------------------------------------------------------

System.out.println("レシピにある分量を記してください");

--------------------------------------------------------------------


続いて、②の「分量」をキーボードで入力してもらうようにしたいと思いますが、

次のように入力したいと思います。

--------------------------------------------------------------------

String myStringA = myReader.readLine();

--------------------------------------------------------------------

何が変わったかお気づきでしょうか?

プログラムを勉強したことがある方でしたら、

意図はすぐにお分かりになると思います。

「myString」を「myStringA」とアレンジしたのでした。


なぜそうしたのでしょうか?

それは、この「myStringA」という文字が変数である。

というのがポイントです。



今日は、時間切れになりましたので、

この続きは、木曜日19時に更新したいと思います。

よろしくお願い致します。