■Report3
■課題
サンプルプログラム
・ コメント cmnt()
・文字列出力 smp1()
・ 変数宣言と数値出力 smp2()
・繰り返し処理 smp3()
・ 条件処理 smp4()
●ソースプログラムー1
public /*これもコメントです*/ class repo3_1 { // Test01.java public static void main(String args[]) { // mainの記述 System.out.println("コメント"); cmnt(); // cmntスレッドの呼び出し System.out.println("\n\n文字列出力"); smp1(); System.out.println("\n\n変数宣言と数値出力"); smp2(); System.out.println("\n\n繰り返し処理"); smp3(); System.out.println("\n\n条件処理"); smp4(); }
public static void cmnt() { // mainの記述 System.out.println("My first Java."); // 文字列出力する }
public static void smp1() { System.out.print("AAAAA"); System.out.print("BBBBB\nCCCCC\n"); System.out.println("DDDDD"); System.out.println("EEEEE\nFFFFF\n\nGGGGG"); }
public static void smp2() { 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); // 結果を出力 System.out.println("a+b=" + (a+b)); // 直接計算させる }
public static void smp3() { int i, sum; for (i=1; i<=5; i++) System.out.println("i=" + i);
sum = 0; for (i=1; i<=5; i++) { sum = sum + i; System.out.println("sum=" + sum); } }
public static void smp4() { 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以上です"); } } }
実行結果
コメント My first Java. 文字列出力 GGGGG 変数宣言と数値出力 繰り返し処理 条件処理 |
---|
●上記プログラムの考察
◎コメントについて 教:P28
1. 単一行コメント
これは「//」で始まり、行末尾までをコメントとして解釈される。
2. 複数行コメント
これはC言語と同じように「/*」で始まり「*/」で終わる。
3.ドキュメンテーションコメント
これは「/**」で始まり「*/」で終わる。このコメントはツールを使って
ソースファイルからコメントを抜き出し、そのプログラムのマニュアルを自動的に
作成できるという利点がある。
◎繰り返し処理 教:P90
for文は変数が1から(i=1)、1ずつ増加して(i++)、5以下になるまで(i<=5)
System.out.printlnを繰り返し実行。
◎条件処理 教:P84
もしiの値が3未満なら(if (i < 3))System.out.println(" 3未満です");を実行。
そうでないときは(else) System.out.println(" 3以上です");を実行する。
◎よくあるエラー
1. '{' と '}' の対応
2. '(' と ')' の対応
3. "(2重引用符) の対応
4. /* と */ の対応
5. 文末の ';' を忘れている
6. 大文字と小文字の違い
7. メインクラス名とファイル名が不一致
●ソースプログラム−2
public class repo3_2 { // Test02.java public static void main(String args[]) { char ch; boolean bdt; int idt; long ldt; float fdt; double ddt; String ss; final int CNST1 = 1234; // final定数ch = 'A'; // 半角文字 System.out.println("文字=" + ch + " code=" + (int)ch); ch = '亜'; // 全角文字 System.out.println("文字=" + ch + " code=" + (int)ch);
bdt = true; System.out.println("bdt = " + bdt);
idt = 1234567890; System.out.println("idt = " + idt);
ldt = 1234567890123456789L; // Lはlong値を示す System.out.println("ldt = " + ldt);
fdt = 123.456F; // Fはfloat値を示す System.out.println("fdt = " + fdt);
ddt = 123.456789012345; System.out.println("ddt = " + ddt);
idt = 022; // 8進数の22 System.out.println("8進22 = " + idt);
idt = 0x22; // 16進数の22 System.out.println("16進22 = " + idt);
ddt = 5.67e4; // 指数表現の56700 System.out.println("指数 = " + ddt);
ch = '\n'; // エスケープ文字 System.out.println("改行文字コード = " + (int)ch);
ss = "AAAA\tBBBB"; // 文字列定数(エスケープ文字を含む) System.out.println("ss = " + ss);
System.out.println("CNST1 = " + CNST1); } }
実行結果
文字=A code=65 文字=亜 code=20124 bdt = true idt = 1234567890 ldt = 1234567890123456789 fdt = 123.456 ddt = 123.456789012345 8進22 = 18 16進22 = 34 指数 = 56700.0 改行文字コード = 10 ss = AAAA BBBB CNST1 = 1234 |
---|
●上記プログラムの考察
◎変数宣言と数値の出力について 教:P12
javaでは、変数を使用する前に宣言しなければならない。 宣言をすることで、
使用する変数の型をコンパイラにしらせている為。
javaでは次のような8種類の基本的な型がサポートされている。
型 | 説明 |
---|---|
char |
16ビットUnicodeキャラクタデータ |
boolean |
真偽値 |
byte |
8ビット符号付き整数 |
short |
16ビット符号付き整数 |
int |
32ビット符号付き整数 |
long |
64ビット符号付き整数 |
float |
32ビット符号付き浮動小数点 |
double |
64ビット符号付き浮動小数点 |
●ソースプログラム−3
public class repo3_3 { // Test06.java public static void main(String args[]) { System.out.println("算術演算子"); comp1(); System.out.println("\n\n関係演算子"); comp2(); System.out.println("\n\n論理演算子"); comp3(); System.out.println("\n\nインクリメント/デクリメント演算子"); comp4(); }public static void comp1() { int a, b, c; double f, g, h;
a = 100; System.out.println("a = " + a); b = 30; 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); // 浮動小数点数除算 }
public static void comp2() { 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ではない"); } }
public static void comp3() { int a;
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 comp4() { int dt[] = {100, 200, 300}; // 配列を確保 int n;
// ++演算子を使わないときの記述 n = 0; System.out.println(dt[n]); // dt[0]を表示 n = n +1; System.out.println(dt[n]); // dt[1]を表示 n = n +1; System.out.println(dt[n]); // dt[2]を表示
// ++演算子を使ったときの記述 n = 0; System.out.println(dt[n++]); // dt[0]を表示 System.out.println(dt[n++]); // dt[1]を表示 System.out.println(dt[n++]); // dt[2]を表示
// --演算子を使う n = 5; while (--n >= 0) { // n回繰り返す System.out.println("n=" + n); } }
実行結果
算術演算子
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 関係演算子 論理演算子 インクリメント/デクリメント演算子 |
---|
●上記プログラムの考察
◎算術演算子
演算子 | 説明 | 演算子 | 説明 |
---|---|---|---|
+ | 加算 | += | 加算代入 |
- | 減算 | -= | 減算代入 |
* | 乗算 | *= | 乗算代入 |
/ | 除算 | /= | 除算代入 |
% | 剰余 | %= | 剰余代入 |
◎関係演算子
演算子 | 意味 |
---|---|
== | 等しい |
!= | 等しくない |
> | より大きい |
< | より小さい |
>= | 以上 |
<= | 以下 |
◎論理演算子
種類 | 演算子 | 意味 | 説明 |
---|---|---|---|
ビット論理演算子 | & | 論理積 | AND。2つの項が真のときにだけ結果が真とな る論理演算 |
| | 論理和 | OR。2つの項が偽のときにだけ結果が偽とな る論理演算 | |
^ | 排他的論理和 | XOR。2つの項が異なるときにだけ結果 が真となる論理演算 | |
! | 否定 | NOT。項の真偽が逆になる論理演算 | |
~ | 補数 | ビットごとの補数 | |
ビットシフト演算子 | >> | 右シフト | 符号拡張子をつけて右にシフト |
>>> | 右シフト | 0を充填して右にシフト | |
<< | 左シフト | 0を充填して左にシフト | |
ビット代入演算子 | = | 論理積(AND)と代入 | |
|= | 論理和(OR)と代入 | ||
^= | 排他的論理和(XOR)と代入 | ||
>>= | 符号拡張子付きの右シフトと代入 | ||
>>>= | ゼロ充填ありの右シフトと代入 | ||
<<= | ゼロ充填ありの左シフトと代入 | ||
ショートカット演算子 | && | 倫理積(ショートカット) | &とは少し異なりまず左のオペランドが評価され、それで結果がわかるときには右辺は評価しない。 |
|| | 論理和(ショートカット) | |とは少し異なりまず左のオペラント(左辺)が評価され、それで結果がわかるときには右辺は評価しない。 |
■感想・反省
今回は、見やすいように表を中心に作りました。
全ての人に分かりやすく、理解しやすいように作ったつもりっす・・・
■参考文献
独習Java 第2版
しっかり学ぶ Java標準テキスト