Javaの基礎知識 I

基本的なルール

サンプルプログラム

■ ソースプログラム
public /*これもコメントです*/ class Test01 {   // 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.


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

よくあるエラー

  1. '{' と '}' の対応
  2. '(' と ')' の対応
  3. "(2重引用符) の対応
  4. /* と */ の対応
  5. 文末の ';' を忘れている
  6. 大文字と小文字の違い
  7. メインクラス名とファイル名が不一致

Javaの基本的なルールのポイント

  1. Javaの範囲型コメントは /* と */ で囲む。// は行末までコメントとなる
  2. ソースプログラムは空行、空白(字下げ)でプログラムの構造を分りやすく
  3. 識別子(変数名等)は英数字と '_'(下線) を使うのが一般的
  4. Javaの予約語は識別子に使用できない
  5. 変数は宣言してから使用する
  6. 文字列、数値の出力には println() を使うことができる
  7. 任意の位置での改行指定は ¥n を使う
  8. Javaの制御文はただひとつの文を制御する。被制御文がふたつ以上の時はブロック文 {} を用いる
  9. Javaには繰り返し文(for)や条件処理文(if)がある
  10. プログラムにエラーがあるとエラーメッセージが表示される。「よくあるエラー」に注意!

変数と定数

サンプルプログラム

■ ソースプログラム
public class Test02 {                  // 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           <= int型
ldt = 1234567890123456789  <= Lを付与したlong値定数
fdt = 123.456              <= Fを付与したfloat値定数
ddt = 123.456789012345     <= double型
8進22 = 18                 <= 8進数の22
16進22 = 34                <= 16進数の22
指数 = 56700.0             <= 5.67e4
改行文字コード = 10        <= エスケープ文字¥n
ss = AAAA       BBBB       <= ¥t(タブ)を含む文字列
CNST1 = 1234               <= final定数

変数と定数のポイント

  1. 基本データ型:boolean、char、byte、short、int、long、float、double
  2. boolean型: true と false という真理値
  3. char型:16ビットUnicode文字を設定
  4. byte、short、int、long型:整数
  5. float、double型:浮動小数点数
  6. 変数宣言時に "int a=123" のように初期化が可能
  7. 文字列は String型 で操作(Stringはクラスで実現)
  8. String型 は可変長の文字列処理
  9. クラス用変数配列用変数参照型。オブジェクトのアドレスを保持する
  10. 変化のない数値=定数(数値定数、文字定数、文字列定数)
  11. 文字定数のエスケープ文字は改行などの特殊な文字を表現する
  12. final定数 を使うと数字を意味のある名前で扱うことができる

式と演算子

サンプルプログラム

■ ソースプログラム
public class Test06 {                 // 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


関係演算子
--------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

式と演算子のポイント

  1. 算術演算子には + = * / % がある
  2. 異なるデータ型間で算術演算することができる
  3. 演算子には優先順位がある
  4. 代入処理には、 単純代入、復号代入、多重代入 がある
  5. 関係演算子には、< <= > >= == != がある
  6. 論理演算子には、!(否定)、&&(かつ)、||(または) がある
  7. インクリメント演算子 ++ は1加算、デクリメント演算子 -- は1減算
  8. ++ には先加算/後加算、-- には先減算/後減算という処理順がある
  9. 文字列連結演算子 を使うと、文字列や数値の連結ができる
  10. この他Javaの演算子には、ビット処理、シフト処理、条件演算、オブジェクト生成 などがある

Next Step

 


TANIGUCHI,Yuji
Last modified: 2003/10/27(Mon) 10:36