if
if(条件式){
}else if(条件式){
}else if(条件式){
}else{
}
「else if」「else」は無くても良い
条件式・elseの後は一文なら{}を省略できる
switch
switch(条件となる変数){
case 0: // 条件となる変数が0の場合ここの処理を実行する
break; // breakしないと次のcaseも実行される
case 1:
break;
default: // それ以外
}
for
for(初期値 ; 条件式 ; 1回ごとの処理){
}
条件式がtrueなら{}の中を処理。
{}の中の処理が1回終わるごとに()内の「1回ごとの処理」を行い「条件式」を評価する
例
for(int i=0;i<5;i++){ // iが0~4まで5回繰り返す
System.out.println(i); // 0~4が出力される
}
処理が一文なら{}を省略できる
( )の中はそれぞれ省略可能だが{}で無限ループにならないように処理する必要がある
拡張for
for(配列の要素を1つ取り出すための変数 : 配列名){ // 区切りの記号は「:」なので注意!
}
例
int[] array={1,2,3};
for(int num:array){
System.out.println(num);
}
arrayの要素{1,2,3}を順番にint numに代入して要素数の数だけ処理を繰り返す
break,continue
int num=0;
for(int i=0;i<5;i++){
if(i>2)break; // i>2のときiのループを抜ける
if(i==1)continue; // i==1のとき以降の処理は行わずループの最初に戻る
num++;
}
whileでも同様にbreak,continueを使用できる。
ネスト
int[][] map={{1,2,3,4},{1,0,1,0},{2,3,4,5}};
for(int y=0;y<map.length;y++){
for(int x=0;x<map[0].length;x++){
System.out.print(map[y][x]+" ");
}
System.out.print("\n"); // ここはxのループから抜けてyのループ。1行ごとに改行
}
2次元配列に入った数値をx=4,y=3(3行4列)として出力。
whileでも同様にネストできる
whileの中にforを入れたりifを入れたり何重にもネストできる。
.lengthは配列の要素数。
今回の場合 map.lengthは3。map[0].lengthは4
while
while(条件式){ // 条件式がtrueなら{}の中の処理を繰り返す
}
無限ループにならないように処理する必要がある
do while
do{ // {}の中を実行してから条件式を評価して繰り返すかどうか決める
}while(条件式);
※ do while で continue を使うと途中の処理は飛ばして最後の条件式に進むので注意