[[TopPage]] > [[演習課題]] > 演習1-1 演習1-1では,3つのプログラムファイルを修正しながら学んでいきます. * 変数型のチェック [#g13544db] まず,次のプログラムをダウンロードして,実行してください. &ref(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の値も変更してみましょう. なぜ,true/falseがでてくるのか? &color(red,yellow){'' なぜ,true/falseがでてくるのか? ''}; booleanの値をprint文で出力すると,true/falseがでてきますね!なぜでしょうか? System.out.printlnは,文字列を出力するための関数です. booleanの値を文字として出力すために,booleanが文字に変換されて,出力されています. * 四則演算・キャスト [#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;はいかにも代入をしているようですが,値を参照しているだけです. - bへの代入はできません.bは,配列を参照するためだけの変数です. &color(red,yellow){'' ポイント ''}; 2次元配列は次のように確保します. int mTables[][]; mTables = new int[9][9]; これは, mTables[0][0]からmTables[8][8]まで使えます. 同様の方法で3次元配列などの高次元の配列も作成できますが, 多次元の配列は,確保するメモリの量が多くなるので, あまりムダになる配列の確保はしないほうがよいです. 2次元配列,3次元配列くらいまでは使いますが. &color(red,yellow){'' 注意 ''}; 配列の確保する数と書き方に気をつけましょう! int a[6]; //6個の配列を確保しました. a[6] = 0 ; //コレはエラーになります! int a[6];と宣言すると,a[0]からa[5]までの6個が使えます. 配列の添え字は「0」から始まります!(C言語も同じです!) *** 練習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)]]};