第三章 
 〜基本編〜
 変数&定数
 変数について・・・
   変数について説明するです。
  変数というのは、値を入れる箱です。
  身近な物で言えば、箱の中に何か物を入れるって感じです。
  箱が変数で、物が値です。
   さらにJavaでは、変数には型というのがあって、
  それぞれの変数には決められた物しか入れられないのです。
  またまた身近な物でいくです。青森産の果物の箱があったとして
  その箱には、りんごやみかんと言った果物しか入れることができず
  きゅうりやなすなどの野菜や果物以外のものは入れることができないのです。
  実際のJavaでやるときは、野菜や果物ではなく、
  整数や少数、文字といった入れ物になってくるです。

 変数の利用
  今度は実際にどう扱うか見にいくことにするです。
   1. 変数の宣言をする
   2. 変数に値を代入する
  例:
   1: int a;      //整数型変数aを宣言
   2: a = 10;      //変数aに10を代入
   1行目のint aで整数型の変数aを宣言しているです。
  これによってこの変数は、整数しか入りませんよ〜と言い切ってるですね!
  箱であらわすと・・・
  この箱の中には整数(1や2、3とか)しか入れることのできない箱の宣言です
   2行目は、変数aの中に10を入れてるです。
  これは、箱の中に10という値を入れているのと同じです。

  身近な例を変数として表現すると・・・
   1: 青森産の果物の箱 a;   //今からこの青森産の果物の箱の名前をaとする
   2: a = りんご;       //箱aにりんごを入れる

  〜いろいろな変数の宣言の仕方〜
  1行にまとめることもできるですね!
   1: int a = 10;
  1行にまとめると、整数型の変数aに10を代入って感じになるです。
  変数aを10で初期化とも言うです。こっちの言い方のが普通かも
  1度にまとめて宣言することも可能です〜
   1: int a,b;
  1度にまとめて宣言すると
  、この例で言うとint型の変数aと変数bを宣言するって感じです

 変数の型
   先ほどは整数型(int型)について説明したですけど・・・
  他にも整数や小数、文字といったものがあるといったですね。
  そこでJavaの変数の型について下の表にまとめてみたです。

変数の型名有効範囲
byte 1バイト整数型(-128 〜 127)
short 2バイト整数型(-32768 〜 32767)
int 4バイト整数型(-2147483648 〜 2147483647)
long 8バイト整数型(-9223372036854775808 〜 9223372036854775807)
float 4バイト単精度浮動小数点
double 8バイト倍精度浮動小数点
char 2バイト 文字型(\u0000 〜 \uffff)
boolean true、false

変数の型一覧表

 変数の有効範囲について
   変数には、有効範囲というものがあるです。
  有効範囲とは、どこまでの値を入れられるかのことです。
  例として、int型では4バイト整数型(-2147483648 〜 2147483647)までが有効範囲と
  表に書いてあるですね!
  この意味は整数型で(整数というのは0や1、-2とかの数値です。0.5とかは小数です)
  -2147483648 〜 2147483647の間の数値を入れることのできる変数の型です
  だから-2147483648 〜 2147483647を超える値を入れるとエラーがでてしまうです。
  2147483648を入れてしまうとエラーになってしまうです。
  int a = 2147483648は駄目
  int a = -2147483649も駄目
  ↑の二つの値は、-2147483648 〜 2147483647の範囲を超えてるから駄目ですね!

 小数型
   Javaの小数には、単精度浮動小数点倍精度浮動小数点と二種類あるです。
  名前からして倍精度浮動小数点の方が変数の有効範囲がでかそうですね。
  事実上かなりでかいです。
   小数とは何かというですと・・・
  10.5や3.2、0.8など数値と数値の間に.がついたやつですね!
  それらの小数を扱うときにはfloat型double型を使うです。
  実際にはdouble型を主に使ってるです。

 文字型
   Javaの文字型は、Unicodeというのを採用していて、日本語も扱えるです。
  文字型というのは、名前の通り文字を入れる変数です。
  注意しなければいけないのは、一文字しか入らないということです。
  ・宣言の仕方
   1:char a;
   2:a = 'x';
   3:char b= 'あ';
  1行目と2行目のは、宣言と代入を別々にやった方法です。
  3行目のは、宣言と代入を同時に行う方法ですね。
  '(シングルコーテーション)で文字を囲むことがポイントです。間違っても
  "(ダブルコーテーション)で文字を囲まないように気をつけるですね!

 ブール型
   ブール型というのはtrue(Yes)とfalse(No)という二つの値を入れる型です。
  いまいちぴんとこないかもしれないですがフラグというものを使うときに使うです。
  フラグというのは、条件を判断させるときに使うやつです。
  フラグがたっていたら(true)だったら○○の処理をする。
  とかフラグがたっていなかったら××をする
  のような感じで、使うです。
  フラグとブール型を使った例は条件のやりかたなどで、
  でてくるので今はtrueとfalseを入れられる型と
  覚えておいてくれればいいです。というか覚えておいてほしいですね。

  実際に変数を使ったプログラムでも見てみようと思うです。
サンプルプログラム3_1
   1:
   2:
   3:
   4:
   5:
   6:
   7:
   8:
   9:
   10:
   11:
   12:
   13:
   14:
   15:
   16:
   17:
   18:
   19:
   20:
   21:
   22:
   23:
   24:
//変数を使ったプログラム
class Rei3_1{
    public static void main(String args[]){
        int     a = 10;
        double  b = 20.5;
        char    c = 'あ';
        boolean d = true;
        
        System.out.println("変数aの値は" + a + "です");
        System.out.println("変数bの値は" + b + "です");
        System.out.println("変数cの値は" + c + "です");
        System.out.println("変数dの値は" + d + "です");
        
        a = 20;
        b = 3.14159;
        c = 'd';
        d = false;
        
        System.out.println("変数aの値は" + a + "です");
        System.out.println("変数bの値は" + b + "です");
        System.out.println("変数cの値は" + c + "です");
        System.out.println("変数dの値は" + d + "です");
    }
}

   4行目から7行目にかけて変数の宣言をしてるですね!
  そのとき、宣言と同時に変数の値の初期化も行ってるです。
   9行目から12行目で変数の値を表示させてるです。
   今回は、今までと違って変数の値を出力させてるですね!
  変数の値を出力させたい場合、 ++ で変数を囲むです。
  そうすれば変数の値が表示されるです。
  けして変数そのものが表示されるわけではないです。
  System.out.println("変数aの値は" + a + "です");を実行して
  変数aの値はaですなどとは表示されないです。
   14行目から17行目にかけて、それぞれの変数に値を代入しているです。
  値を代入することによって、今まで変数に入っていた値は消えてしまい、
  新しく代入した値に変わってしまうですね!
  代入していくことによって値が変わるので変数ってよばれるです〜
   そして、19行目から22行目にかけて本当に値が変更されたか、
  試すために再び出力を行ってるです。

 定数
   変数とは別でもう1つ定数と言うものがあるです。
  変数の特徴は値を自由自在に変えられる便利な物だったですね!実は定数は名前から
  も想像つくかもしれないですが、定まった値つまり変更不可能な値が定数です。
  その定数の宣言の仕方はいたって簡単です。
  例:final int A = 10;
  finalをつければ定数になるのです〜
  これでAという定数には10が入っているです。そしてAの値は変更不可です。
  大文字にしているのは変数と区別するためです。別に大文字にしなければいけないと
  言うことは無いです。
   定数の使い道としては、毎回10という値が出てきていて突如その値が20に切り替わ
  るとき定数を使わなければすべてを変更しなければいけないです。しかし定数を使う
  ことによって最初の宣言だけ変えればいいという使い道があるです。
  その具体的なサンプルをみていくです。

  定数を使わない場合
サンプルプログラム3_2
   1:
   2:
   3:
   4:
   5:
   6:
   7:
   8:
   9
   10:
   11:
   12:
   13:
   14:
   15:
class Rei3_2{
    public static void main(String args[]){
        int num1, num2, num3 ,num4;
        
        num1 = 10 + 3; 
        num2 = 10 - 4;
        num3 = 10 * 2;
        num4 = 10 / 5;
        
        System.out.println("変数num1の値は" + num1 + "です");
        System.out.println("変数num2の値は" + num2 + "です");
        System.out.println("変数num3の値は" + num3 + "です");
        System.out.println("変数num4の値は" + num4 + "です");
    }
}

    10を20に訂正するです〜
サンプルプログラム3_3
   1:
   2:
   3:
   4:
   5:
   6:
   7:
   8:
   9
   10:
   11:
   12:
   13:
   14:
   15:
class Rei3_3{
    public static void main(String args[]){
        int num1, num2, num3 ,num4;
        
        num1 = 20 + 3; 
        num2 = 20 - 4;
        num3 = 20 * 2;
        num4 = 20 / 5;
        
        System.out.println("変数num1の値は" + num1 + "です");
        System.out.println("変数num2の値は" + num2 + "です");
        System.out.println("変数num3の値は" + num3 + "です");
        System.out.println("変数num4の値は" + num4 + "です");
    }
}

   このサンプルプログラムの10をすべて20に変えたとき合計4箇所修正したですね!
  かなり面倒くさいですね!

  定数を使った場合は・・・
サンプルプログラム3_4
   1:
   2:
   3:
   4:
   5:
   6:
   7:
   8:
   9
   10:
   11:
   12:
   13:
   14:
   15:
   16:
class Rei3_4{
    public static void main(String args[]){
        int num1, num2, num3 ,num4;
        final int A = 10;
        
        num1 = A + 3; 
        num2 = A - 4;
        num3 = A * 2;
        num4 = A / 5;
        
        System.out.println("変数num1の値は" + num1 + "です");
        System.out.println("変数num2の値は" + num2 + "です");
        System.out.println("変数num3の値は" + num3 + "です");
        System.out.println("変数num4の値は" + num4 + "です");
    }
}

    10を20に訂正するです〜
サンプルプログラム3_5
   1:
   2:
   3:
   4:
   5:
   6:
   7:
   8:
   9
   10:
   11:
   12:
   13:
   14:
   15:
   16:
class Rei3_5{
    public static void main(String args[]){
        int num1, num2, num3 ,num4;
        final int A = 20;
        
        num1 = A + 3; 
        num2 = A - 4;
        num3 = A * 2;
        num4 = A / 5;
        
        System.out.println("変数num1の値は" + num1 + "です");
        System.out.println("変数num2の値は" + num2 + "です");
        System.out.println("変数num3の値は" + num3 + "です");
        System.out.println("変数num4の値は" + num4 + "です");
    }
}

   4行目の10を20に変えただけですね!かなり便利ですね!
  今回のポイント
  @ 変数は、値を入れる箱
  A 変数には型がある。intやdouble、charなどなど
  B 変数の宣言と初期化の仕方
     int a;
     a = 10;
     とか・・・
     int a = 10;  宣言と初期化を同時に行う方法
     int a,b;    まとめて宣言する方法
  C 変数出力するときは + と +で囲んで出力する。
     例:System.out.println("変数aの値は" + a + "です");
  D 定数は、あらかじめ定めておきたいときに便利
     例:final int A = 5;
         
  TOPに戻る     Java講座に戻る