KATOエンジニヤリング開発日誌

「アウトプット無きエンジニアにインプットもチャンスも無い」の精神で書いています

Javaの制御構造と配列を学ぶ

「Javaプログラミング技法」の第2回目の授業まとめになります。

※ 前回授業の内容はこちら。

www.kato-eng.info

制御構造 ~繰り返し~

Javaの繰り返し処理(Loop)は大きくわけて「for」と「while」の2種類がある。

for

繰り返し回数が決まっている場合には「for文」を使う。

for文の構文は下記の通り。

for (開始条件; 終了条件; 増分) {
    繰り返し処理
}
for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

実行結果

0
1
2
3
4
5
6
7
8
9

for文をフローチャートで表すとこんな感じ。

f:id:masayuki_kato:20170624154513p:plain

while

繰り返し条件がコーディング時に決まっていない場合(動的に繰り返し条件が決まる場合)は「while文」を使う。

while文の構文は下記の通り。

int i = 0;
while (i < 3) {
    System.out.println(i);
    i++;
}
0
1
2

while文は下記のように書くこともできる。

int i = 0;
do {
    System.out.println(i);
    i++;
} while (i < 3);

「do」を最初に付け、最後にwhile文をもっていくと「do while文」になる。

while文との違いは、while文が繰り返し条件を最初から満たしていない場合、1度も繰り返し処理が実行されないが、do while文の場合は最初から繰り返し条件を満たしていない場合でも1度処理が実行される。

continueとbreak

「cintinue」はLoop中に現在の巡回を終え、次の繰り返しに進む。

「break」は繰り返し処理をその場で終わらせる処理になる。

制御構造 ~条件分岐~

if

if (条件式1) {
    条件式1がtrueのときに実行される処理
} else if (条件式2) {
    条件式1がfalseで条件式2がtrueのときに実行される処理
} else if (条件式3) {
    条件式1、2がfalseで条件式3がtrueのときに実行される処理
} else {
    条件式1、2、3がfalseのときに実行される処理
}
int x = 70;

if (x >= 80) {
    処理1;
} else if (x >= 60) {
    処理2;
} else {
    処理3;
}

f:id:masayuki_kato:20170624170839p:plain

switch

switch文の構文は下記の通り。

int x =2;

switch (x) {
    case 1:
        処理1;
        break;
    case 2:
        処理2;
        break;
    default:
        処理3
        break;
}

式を評価し、ラベルの定数と比較・一致した文をbreak文まで実行する。どのラベルにも一致しない場合には「default」処理が実行される。

配列

配列とは同じ変数の集まりである。プログラムでは同じ型の変数を複数扱う場合が多い。例えば学校の生徒毎の成績を変数に格納する場合、integer型の変数を生徒の人数分用意する必要があるが、配列では定義した要素数だけ同じ名前の変数を用意することができる。

// 配列変数の宣言
int [] a;
a = new int[3];
// 宣言と同時に値を代入することもできる
int [] score = {34, 52, 17, 48, 85};

// 配列はインデックスを指定することで値の代入・取得ができる
a[0] = 3;
a[1] = 5;
a[2] = 10;

メモリ上の動作

int [] a;

「int [] a」でメモリ上にint型の配列の先頭アドレス位置をしめす変数を用意します。ただこの時点ではまだ変数「a」の中身は何もない。

a = new int[3];

変数aとは別の場所にint型の変数を要素数分作成する。変数aには実際に作成された変数(配列)の先頭インデックスのメモリアドレスが格納される。

※次回授業の内容はこちら

www.kato-eng.info