Java独習第4章
制御構文
・条件分岐
・繰り返し
・ループの制御
4-1 条件分岐
順次/選択/反復を繰り返してプログラムを開発していくことを構造化プログラミングという
if文の基本に関しては既知のため省略
注意としてはboolean型のモノを==で比較しない。書くときは以下のようにする
Java
if (flag){
System.out.println("練習です")
}
もしfalseを示したいのならば!flagと書く必要がある
なお条件式に否定が入っているとわかりにくいので取り除いた方が可読性が上がる
また、あまりにも深いネストも避けるべき
switch文
Java
var rank = "甲"
switch(rank){
case "甲":
//式=値1の処理
System.out.println("Great");
break;
case "乙":
//式=値2の処理;
System.out.println("Better");
break;
defalt:
System.out.println("??");
break;
}
caseは1種類だけでなく
Java
case "ワイン":
case"ウイスキー":
case "日本酒":
処理
このように複数書いても可能
4-2 繰り返し処理
Java
while(条件式){
処理内容;
}
条件式がtrueの時処理を繰り返す
do..whileは後検証で文の最後に;が必要
Java
do{
処理内容;
}while(条件式);
forは既知のため省略
注意点としては以下のようなこと
・カウンター変数に浮動小数点を利用しない(演算誤差を防ぐため)
・ブロックは以下でのカウンター変数を操作しない(2足したいならi+=2とすればいいがi++を2回書くとか)
・ループ内でのオブジェクト作成と例外処理(処理効率を下げないため)
配列を駆使してこのようなこともできる
Java
var data = String[]{"梅", "桜", "桃"};
for(var data : data){
System.out.println(value);
}
4-3 ループ制御
break命令=現在のループを強制的に中断し、ifと併用する
continue命令=現在の周回だけをスキップ
脱出したいときはlimit
を使用する(下のプログラムは九九の表)
Java
limit:
for(var i = 1; i< 10; i++){
for(var j = 1; j <10; j++){
var result = i * j;
if(result > 50){
break limit;
}
System.out.printf("%2d", result);
}
System.out.println();
}