Report3


[課題]

講義資料を参考に、その範囲のJavaの基礎的な文法について教科書と対応させな がら解説し、考察せよ。
サンプルプログラム
ソースプログラム 実行結果
public/*コメント*/ class Report3_sample1 {

    public static void main(String[] args) {
        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() {

    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.


文字列出力
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以上です



考察






サンプルプログラム(変数と定数)
サンプルプログラム 実行結果
public class Report3_sample2 {

    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




[考察]

  • 「char型」変数は長さが16ビットで、1つのUnicode文字を格納する際に使 われる。半角英数字が格納された場合はASCIIコードで表示される。Unicodeは ASCIIコードを拡張した文字コードだからである。

  • 「boolean型」変数は、true(真)またはfalse(偽)のどちらかの値を持つ。

  • 「byte型」「short型」「int型」「long型」の変数は符号付き整数値を格納する ことが出来る。型によって変数の大きさ(メモリの占有量)が違う。byte型は大 きさが8ビット、short型は16ビット、int型は32ビット、long型では64ビット。

  • 「float型」「double型」の変数は符号付き浮動小数点数を格納することが出来 る。この値は小数部分を持つものかまわない。double型はfloat型の2倍の精度 (有効桁)まで扱うことが可能。


    サンプルプログラム(式と演算子)
    サンプルプログラム 実行結果
    public class Report3_sample3 {
    
    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 amp; 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
    
    
    関係演算子
    --------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
    
    



    [考察]



  • ビット演算子はビットを操作する演算子。
  • ビット演算子はJavaの整数型(char型 byte型 short型 in型t long型)の値に しか適用できない。


    [感想・反省]

    今回はかなり長くなりました、ほとんど教科書からのうつしだけどかなり時間が かかりました。でもこれが自分の為になるのなら…☆