ソースプログラム
/* Program:Report3.java Author :HIDENORI,Tamayose Date :2004,11,15(Mon) */ /** これは、 5行にわたる 長いコメント。 */ public class Report3 { // Report3.java public static void main(String args[]) { // mainの記述 System.out.println("変数宣言と数値出力"); num(); //numスレッドの呼び出し System.out.println("\n\n繰り返し処理"); rep(); System.out.println("\n\nデータ型&エスケープ文字"); data(); System.out.println("\n\n演算式"); enn(); System.out.println("\n\n条件処理"); jou(); System.out.println("\n\n関係演算子"); rel(); System.out.println("\n\n一次元配列"); poi(); } public static void num() { int a, b, sum; a = 100; b = 200; sum = a + b; System.out.print("a="); // 文字列だけ出力 System.out.println(a); // 数値だけ出力 System.out.println("b=" + b); // 文字列と数値を出力 System.out.println("a+b=" + sum); // a+bの結果を出力 System.out.println("a+b=" + (a+b)); // 直接計算させる } public static void rep() { int i, sum; for (i=1; i<=5; i++) //iは1から5まで System.out.println("i=" + i); sum = 0; for (i=1; i<=5; i++) { //iが1から5になるまで下記の処理 sum = sum + i; System.out.println("sum=" + sum); } } public static void data() { char ch; byte bn; short sn; int n1, n2, n3, in; long ln; float fn; double dn; String s1,s2; final int fin = 1234; ch = 'A'; // 半角大文字アルファベッド System.out.println("文字=" + ch + " code=" + (int)ch); ch = 'a'; // 半角文字小文字アルファベッド System.out.println("文字=" + ch + " code=" + (int)ch); ch = '秀'; // 全角漢字 System.out.println("文字=" + ch + " code=" + (int)ch); n1=100; n2=100; n3=200; boolean ba = (n1==n2); boolean ca = (n1==n3); System.out.println("\n真偽値出力"); System.out.println("n1とn2は等しいですか?"+ ba); System.out.println("n1とn3は等しいですか?"+ ca); System.out.println("\nビット符号付き整数"); bn=127; System.out.println("byte型最大表現値は"+ (byte)bn); sn=32767; System.out.println("short型最大表現値は"+ (short)sn); in=2147483647; System.out.println("int型最大表現値は"+ (int)in); ln=9223372036854775807L; System.out.println("long型最大表現値は"+ (long)ln); System.out.println("\nビット符号付き浮動小数点数"); fn = 123.456F; System.out.println("fn = " + fn); dn = 123.456789012345; System.out.println("dn = " + dn); System.out.println("\n文字列表示"); s1 = "abcdEFghI"; System.out.println("s1 = " + s1); System.out.println("\n進数表示"); System.out.println("10進数の10は" + 10 + "です。"); System.out.println("八進数10は" + 010 + "です"); System.out.println("16進数の10は" + 0x10 + "です"); System.out.println("16進数のFは" + 0xF + "です"); System.out.println("\nエスケープ文字"); ch = '\n'; System.out.println("改行文字コード = " + (int)ch); s2 = "AAAA\tBBBB"; System.out.println("s2 = " + s2); System.out.println("\nfinal定数"); System.out.println("final定数fin="+ fin); } public static void enn() { byte bn; int a, b, c, d, e, in; float fn; double f, g, h, i, dn; char ch; a = 100; b = 30; System.out.println("a = " + a); System.out.println("b = " + b); c = a + b; System.out.println("a+b = " + c); // 加算 c = a - b; System.out.println("a−b = " + c); // 減算 c = a * b; System.out.println("a×b = " + c); // 乗算 c = a / b; System.out.println("a÷b = " + c); // 整数除算 c = a % b; System.out.println("a÷bの余り = " + c); // 整数剰余 f = 90.0; System.out.println("f = " + f); g = 40.0; System.out.println("g = " + g); h = f / g; System.out.println("f÷g = " + f/g); // 浮動小数点数除算 d = 50; e = 70; c = a*b+88/d-5*e; System.out.println("(a×b)+(88÷d)−(500×e) = " + c); ch = 'A'; in = 127; fn = 10.25f; System.out.println("型変換1:(ch×in÷fn) =" + ch*in/fn); bn = (byte)in; System.out.println("型変換2:bn =" + bn); in = ch; System.out.println("型変換3:ch =" + in); } public static void jou() { int i; for (i=1; i<=5; i++) { System.out.print("i=" + i); if (i < 3) System.out.println(" 3未満です"); else System.out.println(" 3以上です"); } } public static void rel() { int a; for (a=1; a<=5; a++) { System.out.println("--------" + a); if (a < 2) System.out.println("2未満"); if (a >= 4) System.out.println("4以上"); if (a == 3) System.out.println("3である"); if (a != 3) System.out.println("3ではない"); } System.out.println("\n"); for (a=1; a<=5; a++) { System.out.println("--------" + a); if (a>=2 && a<=4) System.out.println("2以上かつ4以下"); if (a<2 || a>4) System.out.println("2未満または4より大"); if (!(a==1 || a==3)) System.out.println("1または3、ではない"); } } public static void poi() { int ia[] = new int[4]; //配列の宣言 int ib[] = new int[4]; int n; ia[0] = 33; //ia要素の初期化 ia[1] = 71; ia[2] = -16; ia[3] = 45; ib = ia; //ibにiaと同じ配列を割り当て System.out.println("配列ibの長さは" + ib.length); //ibの要素数表示 //++演算子を使わない場合の記述 System.out.println("ibの要素"); n = 0; System.out.println("ib[0] = " + ib[0]); //ibの要素内容表示 System.out.println("ib[1] = " + ib[1]); System.out.println("ib[2] = " + ib[2]); System.out.println("ib[3] = " + ib[3]); ib[1] = 100; //++演算子を使った場合の記述 System.out.println("iaの要素"); n = 0; System.out.println("ia[0] = " + ia[n++]); //iaの要素内容表示 System.out.println("ia[1] = " + ia[n++]); System.out.println("ia[2] = " + ia[n++]); System.out.println("ia[3] = " + ia[n++]); System.out.println("ibの要素"); n = 0; System.out.println("ib[0] = " + ib[n++]); //ibの要素内容表示 System.out.println("ib[1] = " + ib[n++]); System.out.println("ib[2] = " + ib[n++]); System.out.println("ib[3] = " + ib[n++]); //--演算子を使った場合の記述 n = 6; while (--n >= 0) { System.out.println("n = " + n); } } } |
・実行結果
変数宣言と数値出力 a=100 b=200 a+b=300 a+b=300 繰り返し処理 i=1 i=2 i=3 i=4 i=5 sum=1 sum=3 sum=6 sum=10 sum=15 データ型&エスケープ文字 文字=A code=65 文字=a code=97 文字=秀 code=31168 真偽値出力 n1とn2は等しいですか?true n1とn3は等しいですか?false ビット符号付き整数 byte型最大表現値は127 short型最大表現値は32767 int型最大表現値は2147483647 long型最大表現値は9223372036854775807 ビット符号付き浮動小数点数 fn = 123.456 dn = 123.456789012345 文字列表示 s1 = abcdEFghI 進数表示 10進数の10は10です。 八進数10は8です 16進数の10は16です 16進数のFは15です エスケープ文字 改行文字コード = 10 s2 = AAAA BBBB final定数 final定数fin=1234 演算式 a = 100 b = 30 a+b = 130 a−b = 70 a×b = 3000 a÷b = 3 a÷bの余り = 10 f = 90.0 g = 40.0 f÷g = 2.25 (a×b)+(88÷d)−(500×e) = 2651 型変換1:(ch×in÷fn) =805.36584 型変換2:bn =127 型変換3:ch =65 条件処理 i=1 3未満です i=2 3未満です i=3 3以上です i=4 3以上です i=5 3以上です 関係演算子 --------1 2未満 3ではない --------2 3ではない --------3 3である --------4 4以上 3ではない --------5 4以上 3ではない --------1 2未満または4より大 --------2 2以上かつ4以下 1または3、ではない --------3 2以上かつ4以下 --------4 2以上かつ4以下 1または3、ではない --------5 2未満または4より大 1または3、ではない 一次元配列 配列ibの長さは4 ibの要素 ib[0] = 33 ib[1] = 71 ib[2] = -16 ib[3] = 45 iaの要素 ia[0] = 33 ia[1] = 100 ia[2] = -16 ia[3] = 45 ibの要素 ib[0] = 33 ib[1] = 100 ib[2] = -16 ib[3] = 45 n = 5 n = 4 n = 3 n = 2 n = 1 n = 0 |
・考察
(1)予約語と識別子
データ型、if文など元々Javaにある変数、関数(識別子)を「予約語」。自分で作る変数や関数などの名前は「識別子」と呼びます。 識別子の名前は基本的にはプログラマーが 自由に命名できます。ただし次のような制約があります。・半角英数字および半角アンダーバー(_)のみ使用でき、最初の1文字は英字である ・大文字、小文字は区別される ・予約語は使用できない |
(2)コメント(P.28〜)
・「/*」と「*/」で囲まれたコメントは複数行にわたり書くことができます。(複数行コメント)(3)変数と定数
型名 | ビット数(バイト数) | 表現できる範囲 | 分類 |
---|---|---|---|
byte | 8 (1) | (-27 〜 27-1) = (-128 〜 127) | 符号付整数型 |
short | 16 (2) | (-215 〜 215-1) | |
int | 32 (4) | (-231 〜 231-1) | |
long | 64 (8) | (-263 〜 263-1) | |
char | 16 (2) | Unicode の一文字 | 文字(整数型) |
float | 32 (4) | IEEE 754 規格の 32 ビット浮動小数点数 | 浮動小数点数型 |
double | 64 (8) | IEEE 754 規格の 64 ビット浮動小数点数 | |
boolean | - | True or False |
論理値型 |
(4)演算子
加算 | + | 加法演算子 |
---|---|---|
減算 | - | |
乗算 | * | 乗法演算子 |
除算 | / | |
剰余 | % | |
加算代入 | += | 加法演算子の代入 |
減算代入 | -= | |
乗算代入 | *= | 乗法演算子の代入 |
除算代入 | /= | |
剰余代入 | %= |
小なり | < |
---|---|
大なり | > |
小なりイコール | <= |
大なりイコール | >= |
論理積(かつ) AND | & |
---|---|
論理和(又は) OR | | |
排他的論理和 XOR | ^ |
否定 | !(条件) |
論理積(ショートカット) | && |
論理和(ショートカット) | || |
等しい | == |
等しくない | != |
式中での評価、更新順序 | |||
---|---|---|---|
インクリメント | y = y + 1; | y++; |
y を評価してから式を演算し、 y + 1 に更新 |
++y; | y + 1 に更新してから式の評価、演算 | ||
デクリメント |
y = y - 1; | y--; | 評価してから更新 |
--y; | 更新してから評価 |
(5)制御構造
(6)型変換
プログラムch = 'A'; in = 127; fn = 10.25f; System.out.println("型変換1:(ch×in÷fn) =" + ch*in/fn); bn = (byte)in; System.out.println("型変換2:bn =" + bn); in = ch; System.out.println("型変換3:ch =" + in); |
型変換1:(ch×in÷fn) =805.36584 型変換2:bn =127 型変換3:ch =65 |
・感想
今回はCと同じようなものだったので簡単だと思いましたがプログラム自体がかなりながくなってしまったし、それに加えて考察も長くなって しまいました。でも長く時間をかけたのでかなり力になったと思います。次回も油断せずがんばります。参考文献・HP
・独習Java第2版 『ジョゼフ・オニール著』