学習ログ
文を実行させる順番のことを制御構造といい、主に「順次」「分岐」「繰り返し」がある。
####制御構文の構成要素
[条件式]分岐条件や繰り返しを続ける条件を示した式
[ブロック]分岐や繰り返しで実行する一連の文の集まり
・分岐構文
if(条件式) {
ブロック
} else {
ブロック
}
・繰り返しの構文
while(条件式){
ブロック
}
####分岐構文のバリエーション
・3種類のif構文
▪︎if-else構文(基本形)
//例
if(age >= 20) {
canDrink = true; //条件がtrueの場合ここのブロックの処理が動く。
} else {
canDrink = false; //条件がfalseの場合ここのブロックの処理が動く。
}
▪︎ifのみ構文
//例
if( age >= 20) {
canDrink = true;
}
▪︎if-else if-else構文
//例
if( height >= 170) {
size = 'L';
} else if(height >= 155){
size = 'M';
} else if(height >= 140){
size = 'S';
} else {
size = '?';
}
####switch 構文
switch文に書き換えることができる条件
①全ての条件式が「変数==値」や「変数==変数」のように左辺や右辺が一致するか比較する式しか使用できない(<,>,!=,などは使用できない)
②比較する値が整数(byte型、short型、int型のいずれか)、文字列(String型)または文字(char型)であり、少数や真偽値ではない。
//例
switch(fortune){
case 1:
System.out.println("大吉");
break;
case 2:
System.out.println("中吉");
break;
case 3:
System.out.println("吉");
break;
default: // caseのどれにも当てはまらなかった場合の処理(いらないなら省略可)
System.out.println("凶");
}
・switch文は当てはまるcaseにジャンプするだけなのでbreakを記述しないと特定のcaseまで飛んだ後そこからまた順次プログラムを読み込んでしまう。
※break文とは: 処理を中断し終了させるメソッド。
####繰り返し構文のバリエーション
・2種類のwhile文
▪︎while構文(基本形)
//例
while(temp > 25) {
temp--;
System.out.println("温度を1度下げました");
}
▪︎do-while構文
//例
do{
temp--;
System.out.println("温度を1度下げました");
} while(temp > 25);
・for文による繰り返し
for (ウンタ変数の初期化処理; 繰り返し条件; カウンタ変数の増減処理) {
繰り返す処理
}
//例
for( int i = 0; i < 10; i++) {
System.out.println(i);
}
//変数iを初期化して0を代入している。iが10より大きくなるまでブロック内の処理を行う。
//処理を行うたびにi++(変数iに1を足す)という処理を行う。
####制御構造のネスト
「分岐の中に分岐」や「繰り返しの中に分岐」など、このような多重構造を「入れ子」や「ネスト」という。
▪︎分岐処理の中の分岐処理
//例
if(height > 170){
if(eye > 1.0){
System.out.println("合格");
}
}
▪︎繰り返しの中の分岐処理
//例
do{
if(i % # == 0){
System.out.println(i);
}
i++
} while(i < 100);
・break文(繰り返し自体を中断)
for(int i = 1; i < 10; i++) {
if(i == 3){
break;
}
System.out.println(i);
}
・continue文(今回の文だけを中断し、次の周へ)
for(int i = 1; i < 10; i++) {
if(i == 3){
continue;
}
System.out.println(i);
}