Java言語入門 〜C言語を学んだ君へ〜
[1] 変数
C言語で変数を使いました。
Javaでも変数を使うことができます。
Javaでは、以下の基本データ型があります。
データ型一覧
型 | 説明 |
---|---|
boolean | 1ビット真偽値(trueまたはfalse) |
char | 16ビットUnicode文字 |
byte | 8ビット符号付き整数 |
short | 16ビット符号付き整数 |
int | 32ビット符号付き整数 |
long | 64ビット符号付き整数 |
float | 32ビット符号付き浮動小数点数 |
double | 64ビット符号付き浮動小数点数 |
ほとんどC言語と同じ型ですが、booleanだけはC言語にはない型です。
これは真偽値を表し、trueかfalseの2種類のみ代入することができます。主に制御文などで使用されます。
詳細については、第5回「繰り返し処理と分岐処理」 で扱っていますので、そちらを見てください。
データ型?変数?という方は納得C言語第2回データ型を見てください。
では、これからC言語とJavaでどのように変わったのか見ていきます。
以下のプログラムを書いて実行してみましょう。
宣言と代入と表示のプログラム
public class Java04_01{
public static void main(String args[]){
int value1 = 20;
System.out.println(value1);
int value2 = 10;
System.out.println(value2);
}
}
実行結果
C言語で変数宣言をする時には必ず処理の前に書く必要がありました。
しかし、このプログラムを見てみると、System.out.println()を使った後に
int型のvalue2を宣言して利用しています。
C言語では関数の初めに宣言しなくてはいけませんでしたが、Javaではそのような制約はありません。
わざわざ戻ることなく自由に宣言することができるのでとても便利になりました。
[2] 文字列
C言語ではchar型の配列を用意して文字列を扱いました。
char str[] = "string";
JavaもC言語のようにchar型の配列で文字列を定義できますが、
もっと簡単に文字列を扱うことができます。
Javaの文字列定義
String str = "string";
まるで文字列を格納する基本データ型があるかのように見えます。
実際はStringというクラスなのですが、今は基本データ型の一つだと思ってください。
クラスについては第8回「クラス」で説明します。
では、このStringというものがどのようなものなのかプログラムで見てみましょう。
文字列のサンプルプログラム
public class Java04_02{
public static void main(String args[]){
String str1 = "ほぷ";
String str2 = "しぃ";
String str3 = str1 + str2;
System.out.println(str3);
}
}
実行結果
上のように行うことで、文字列は連結することができます。
「+」で文字列が連結します。したがって、str3には"ほぷしぃ"という文字列が格納されます。
[3] 変数の表示
変数の値を表示するだけだったり、文字列を表示するだけの方法は学びました。
では、次に文字列と変数の値を表示するときにどのようにするのか説明します。
文字列と変数の表示サンプルプログラム
public class Java04_03{
public static void main(String args[]){
int value = 10;
System.out.println("valueの値 = "+ value);
//C言語の時は以下のように書きました
//printf("valueの値 = %d", value);
}
}
実行結果
System.out.println("a=" +a);
これをC言語で記述するとこのようになります。
printf("a=%d", a);
と全く同じ結果を得ることができます。
C言語では%dという出力先を記述して、後で変数を記述しました。
実行してみると、%dの部分が変数aに置き換わり表示されます。
Javaでは("a=" +a)と書けば a=100と表示されます。
ここで使っている"+"は、加算の"+"ではなくてくっつける役割を持っている"+"です。
Javaでは表示順のまま記述するのでどの値がどの位置に表示されるのかよくわかるようになりました。
[4] 配列
配列もC言語と同様に扱うことができます。
1ページ目で注意しなくてはならないと説明しました。
C言語の配列宣言と比較して、実際にJavaの配列の扱いを学びましょう。
まずはプログラムを見てください。
配列のサンプルプログラム
public class Java04_04{
public static void main(String args[]){
//配列宣言の方法と代入
int [] array = new int[3];
array[0] = 1;
array[1] = 2;
array[2] = 3;
//array[3] = 4; 配列の範囲外への代入はエラー
//配列の長さを調べる
System.out.println("配列の長さ = "+ array.length);
//2次元配列
int [][] array2 = new int[2][2];
array2[0][1] = 3;
System.out.println(array2[0][1]);
//一括でこのように初期化できる
int values[] = {0, 1, 2};
System.out.println(values[2]);
}
}
実行結果
まずは宣言方法が今までとは全然違うという点が重要です。
int array[] = new int[3];
データ型 配列名[] = new データ型[要素数]とJavaでは書きます。
これを2行で書く場合には、以下のように書きます。
int array[];
array = new int[3];
代入方法はC言語と同じなので説明はしません。
添え字はC言語と同じように0から始まり、指定した数よりも1小さい値までです。
2次元配列を使いたときには上記プログラムのように記述します。
配列を作成と同時に初期化する方法はC言語と似ています。
さて、ここで"array.length"とあります。
配列名.length
上記のようにすることで、その指定した配列の長さを知ることができます。
これはC言語にはない特殊な機能です。覚えておくと役に立ちます。
続いて、エスケープ文字、演算子、キャストについて学びましょう。