講義資料を参考にJavaの基礎的な文法について、教科書と対応させながら解説・考
察せよ。
1.Test01.java
2.Test02.java
3.Test06.java
1.Test01.java
プログラム
01. public /*これもコメントです*/ class Test01 { // Test01.java
02. public static void main(String args[]) { // mainの記述
03. System.out.println("コメント");
04. cmnt(); // cmntスレッドの呼び出し
05. System.out.println("\n\n文字列出力");
06. smp1();
07. System.out.println("\n\n変数宣言と数値出力");
08. smp2();
09. System.out.println("\n\n繰り返し処理");
10. smp3();
11. System.out.println("\n\n条件処理");
12. smp4();
13. }
14.
15. public static void cmnt() { // mainの記述
16. System.out.println("My first Java."); // 文字列出力する
17. }
18.
19. public static void smp1() {
20. System.out.print("AAAAA");
21. System.out.print("BBBBB\nCCCCC\n");
22. System.out.println("DDDDD");
23. System.out.println("EEEEE\nFFFFF\n\nGGGGG");
24. }
25.
26. public static void smp2() {
27. int a, b, sum;
28.
29. a = 100;
30. b = 200;
31. sum = a + b;
32. System.out.print("a="); // 文字列だけ出力
33. System.out.println(a); // 数値だけ出力
34. System.out.println("b=" + b); // 文字列と数値を出力
35. System.out.println("a+b=" + sum); // 結果を出力
36. System.out.println("a+b=" + (a+b)); // 直接計算させる
37. }
38.
39. public static void smp3() {
40. int i, sum;
41.
42. for (i=1; i<=5; i++)
43. System.out.println("i=" + i);
44.
45. sum = 0;
46. for (i=1; i<=5; i++) {
47. sum = sum + i;
48. System.out.println("sum=" + sum);
49. }
50. }
51.
52. public static void smp4() {
53. int i;
54.
55. for (i=1; i<=5; i++) {
56. System.out.print("i=" + i);
57. if (i < 3)
58. System.out.println(" 3未満です");
59. else
60. System.out.println(" 3以上です");
61. }
62. }
63. }
実行結果
コメント
My first Java.
文字列出力
AAAAABBBBB
CCCCC
DDDDD
EEEEE
FFFFF
GGGGG
変数宣言と真値出力
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
条件処理
i=1 3未満です
i=2 3未満です
i=3 3以上です
i=4 3以上です
i=5 3以上です
/*〜*/は複数行コメントで、〜の部分がコメントとして解釈される。
//から始まるのは単一行コメントで、以降の文字から行末尾までコメントとして解釈される。
for (i=1; i<=5; i++)は、iが5になるまで+1し続ける。
sum = sum + i;の+は、算術演算子であるが、System.out.println("sum=" + sum);の+は、連結演算子である。連結演
算子は、2つの文字列を連結する演算子で、引用符で囲まれた文字列を使用できる場所であればどこでも使用できる。
2.Test02.java
プログラム
01. public class Test02 { // Test02.java
02. public static void main(String args[]) {
03. char ch;
04. boolean bdt;
05. int idt;
06. long ldt;
07. float fdt;
08. double ddt;
09. String ss;
10. final int CNST1 = 1234; // final定数
11.
12. ch = 'A'; // 半角文字
13. System.out.println("文字=" + ch + " code=" + (int)ch);
14. ch = '亜'; // 全角文字
15. System.out.println("文字=" + ch + " code=" + (int)ch);
16.
17.
18. bdt = true;
19. System.out.println("bdt = " + bdt);
20.
21. idt = 1234567890;
22. System.out.println("idt = " + idt);
23.
24. ldt = 1234567890123456789L; // Lはlong値を示す
25. System.out.println("ldt = " + ldt);
26.
27. fdt = 123.456F; // Fはfloat値を示す
28. System.out.println("fdt = " + fdt);
29.
30. ddt = 123.456789012345;
31. System.out.println("ddt = " + ddt);
32.
33. idt = 022; // 8進数の22
34. System.out.println("8進22 = " + idt);
35.
36. idt = 0x22; // 16進数の22
37. System.out.println("16進22 = " + idt);
38.
39. ddt = 5.67e4; // 指数表現の56700
40. System.out.println("指数 = " + ddt);
41.
42. ch = '\n'; // エスケープ文字
43. System.out.println("改行文字コード = " + (int)ch);
44.
45. ss = "AAAA\tBBBB"; //文字列定数(エスケープ文字を含む)
46. System.out.println("ss = " + ss);
47.
48. System.out.println("CNST1 = " + CNST1);
49. }
50. }
実行結果
文字=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
charは、16ビットUnicodeのデータ型である。
booleanは、真偽値を表すデータ型である。boolean型は、true(真)またはfalse(偽)のどちらかの値を持つ。
intは、32ビット符号付き整数を表すデータ型である。
longは、64ビット符号付き整数のデータ型である。
floatは、32ビット符号付き浮動小数点数のデータ型である。
doubleは、64ビット符号付き浮動小数点数のデータ型である。
final int CNST1 = 1234;のfinalは、定数として使える変数を表す、変数の修飾子である。
3.Test06.java
プログラム
01. public class Test06 { // Test06.java
02. public static void main(String args[]) {
03. System.out.println("算術演算子");
04. comp1();
05. System.out.println("\n\n関係演算子");
06. comp2();
07. System.out.println("\n\n論理演算子");
08. comp3();
09. System.out.println("\n\nインクリメント/デクリメント演算子");
10. comp4();
11. }
12.
13. public static void comp1() {
14. int a, b, c;
15. double f, g, h;
16.
17. a = 100; System.out.println("a = " + a);
18. b = 30; System.out.println("b = " + b);
19. c = a + b; System.out.println("a+b = " + c); // 加算
20. c = a - b; System.out.println("a-b = " + c); // 減算
21. c = a * b; System.out.println("a*b = " + c); // 乗算
22. c = a / b; System.out.println("a/b = " + c); // 整数除算
23. c = a % b; System.out.println("a%b = " + c); // 整数剰余
24.
25. f = 90.0; System.out.println("f = " + f);
26. g = 40.0; System.out.println("g = " + g);
27. h = f / g; System.out.println("f/g = " + f/g); // 浮動小数点数除算
28. }
29.
30. public static void comp2() {
31. int a;
32. for (a=1; a<=5; a++) {
33. System.out.println("--------" + a);
34. if (a < 2) System.out.println("2未満");
35. if (a >= 4) System.out.println("4以上");
36. if (a == 3) System.out.println("3である");
37. if (a != 3) System.out.println("3ではない");
38. }
39. }
40.
41. public static void comp3() {
42. int a;
43.
44. for (a=1; a<=5; a++) {
45. System.out.println("--------" + a);
46. if (a>=2 && a<=4)
47. System.out.println("2以上かつ4以下");
48. if (a<2 || a>4)
49. System.out.println("2未満または4より大");
50. if (!(a==1 || a==3))
51. System.out.println("1または3、ではない");
52. }
53. }
54.
55. public static void comp4() {
56. int dt[] = {100, 200, 300}; // 配列を確保
57. int n;
58.
59. // ++演算子を使わないときの記述
60. n = 0;
61. System.out.println(dt[n]); // dt[0]を表示
62. n = n +1;
63. System.out.println(dt[n]); // dt[1]を表示
64. n = n +1;
65. System.out.println(dt[n]); // dt[2]を表示
66.
67. // ++演算子を使ったときの記述
68. n = 0;
69. System.out.println(dt[n++]); // dt[0]を表示
70. System.out.println(dt[n++]); // dt[1]を表示
71. System.out.println(dt[n++]); // dt[2]を表示
72.
73. // --演算子を使う
74. n = 5;
75. while (--n >= 0) { // n回繰り返す
76. System.out.println("n=" + n);
77. }
78. }
79. }
実行結果
算術演算子
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
関係演算子
--------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、ではない
インクリメント/デクリメント演算子
100
200
300
100
200
300
n=4
n=3
n=2
n=1
n=0
int dt[] = {100, 200, 300};は、32ビット符号付き整数配列dt[] = {100, 200, 300}を定義する。