[[TopPage]] > [[演習課題]] > 演習1-1

演習1-1では,3つのプログラムファイルを修正しながら学んでいきます.

* 変数型のチェック [#g13544db]

まず,次のプログラムをダウンロードして,実行してください.

&ref(DataType.java,,,DataType.java ダウンロード);/[[ソースコードファイルを見る>http://yoslab.net/netprog/source/DataType.java]]

*** 説明 [#mef4c1a6]

C言語と同様にJavaにもいろいろな変数の型があります.

| 重要度 | 型名 | 説明 |
| |''byte''型  | 1バイトの''整数''を扱える (-128〜127) |
| |''short''型 | 2バイトの整数を扱える (-32768〜32767)|
|◎|''int''型   | 4バイトの整数を扱える (2の32乗=2,147,483,647) |
| |''long''型  | 8バイトの整数を扱える (2の64乗) |
| |''float''型 | 単精度''浮動小数点''型 |
|◎|''double''型| 倍精度浮動小数点型 |
| |''char''型  | 文字型…1文字を表す |
|◎|''boolean''型| 論理型…true(真)かfalse(偽)のいずれかを保持する|

Javaでは,論理型(boolean)と呼ばれる型があります.
これは論理値,すなわち''Yes''か''No''かの2択を格納するための変数型です.

*** 練習 [#yb370604]
ソースコードを見ながら,実行してみてください.
&br;
このとき,実行結果には「boolean true」と出力されていますね.
&br;
ソースコード10行目にある,
     boolean bool = true;
を,
     boolean bool = (i == 12345);
に書き換えて実行してみましょう.
- iは56789なので,12345とは等しくないため,falseが代入されるはずですね.

また,ソースコード5行目の変数iの値も変更してみましょう.


* 四則演算・キャスト [#q659d84c]

まず,次のプログラムをダウンロードして,実行してください.

&ref(DainyuType.java,,,DainyuType.java ダウンロード);/[[ソースコードファイルを見る>http://yoslab.net/netprog/source/DainyuType.java]]


*** 説明 [#j626dad2]

4.2や1.8というのは実数で,実数の計算結果をint(整数型)に入れるときには,「データの精度が落ちますよ」という文句が出て,コンパイルが通りません.&br;
それを無理矢理(明示的に)いれるためにキャストを利用します.
それを無理矢理(明示的に)いれるために''キャスト''(型変換)を利用します.
 a = (int) 4.2 + (int)(3 + 1.8);
例えば,上記の例では,4.2を(強制的に)int型へ変換しています.また,3+1.8の結果を,(強制的に)int型へ変換しています.


*** 練習 [#wac5f1ac]

(1)~
(int)のあるときと,ないときで試してみましょう.
%%%キャストしないとコンパイルが通らないことを確認してください.%%%


(2)~
(int)4.2+(int)1.8;を試しましょう.
%%%実施する前に,結果を予想してください.%%%

どうして,そうなるかを考えましょう.


* 配列 [#e92c2e8c]

まず,次のプログラムをダウンロードして,実行してください.

&ref(ArrayTest.java,,,ArrayTest.java ダウンロード);/[[ソースコードファイルを見る>http://yoslab.net/netprog/source/ArrayTest.java]]


*** 説明 [#vd704047]

配列の使い方の例です.
3行目の
 int[] a = {1, 2, 3};
は,配列aを宣言しつつ,同時にaに値を入れてしまう方法です.この時の配列の大きさは3です.


配列の大きさを後で決められるように,
 int[] a;
 a = new int [100];
という書き方もできます.new int [number]と宣言した行で,配列aの大きさが決定します.&br;
一度決定した配列の大きさを伸縮させることは通常できません.

&color(green,lightcyan){''補足:''}; 
- 配列は,int[] a;とint a[];という2つの書き方ができます.
- b = a;はいかにも代入をしているようですが,値を参照しているだけです.

&color(red,yellow){'' ポイント ''}; 2次元配列は次のように確保します.
 int mTables[][];
 mTables = new int[9][9];

これは,
mTables[0][0]からmTables[8][8]まで使えます.


*** 練習1 [#n78a6edd]

まず,5行目に以下を入力してみましょう.
 a[3]=4;
実行すると,エラーが出るはずです.何故だか考えてみましょう.

*** 練習2 [#ufb15399]

a[0]の値を変更すると
b[0]の値も変更されています.

 a[0]=5;
をプログラムの最後に追加して,さらに,その後にb[0]の出力をして,値を確認してください.

%%%結果を予想して,試してください.%%%

#br

&size(16){[[&ref(http://yoslab.net/netprog/next.gif,nolink); 次の演習(1-2)>演習1-2 制御構造(if, switch)]]};

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   一覧 単語検索 最終更新     最終更新のRSS