トップ
トップ >  プログラミング言語 >  Java >  制御
制御
概要
メソッド内は呼び出されると、制御文にしたがって処理が進みます。

分岐
if
書式
if(条件式){
  条件式がtureである場合の処理
}
[else{
  条件式がfalseである場合の処理
}]
中括弧を省略した場合、1行のみが有効になります。 誤解を招きやすいのであまり望ましくない記述です。
項目説明
条件式評価対象です。boolean型である必要があります。

解説
条件式の値により、処理を分岐させる場合に使用します。

概要ソースコード実行結果説明
分岐(真) if(true){
  System.out.println("真");
}
条件式が真の場合if直後のブロックが実行されます。
分岐(偽) if(false){
}
else{
  System.out.println("偽");
}
条件式が偽の場合else直後のブロックが実行されます。

switch
書式
switch(int型変数){
  [case 整数:
    変数と整数が一致する場合の処理]…
  [defalse:
    すべてのcaseに該当しない場合の処理]
}
breakがないと、次のcaseまたはdefaultに処理が移ります。
項目説明
条件式評価対象です。boolean型である必要があります。
int型変数多分岐の評価対象です。int型である必要があります。

解説
int型変数と一致するcaseに処理が移ります。
ソースコード説明
switch(3){
case 2:
  System.out.println("2");
  break;
case 3:
  System.out.println("3");
  break;
}
指定した整数と一致するcase以降が実行されます。
switch(3){
case 2:
  System.out.println("2");
  break;
default:
  System.out.println("other");
  break;
}
指定した整数と一致するcaseがない場合はdefault以降が実行されます。
switch(2){
case 2:
  System.out.println("2");
case 3:
  System.out.println("3");
default:
  System.out.println("other");
}
breakがない場合は以降の処理が引き続き実行されます。

繰り返し
for
書式
[ラベル:]…for(前処理;ループ条件;後処理){
  繰り返すべき処理
}
項目説明
ラベルbreakやcontinueで利用できるラベルです。
前処理繰り返しに入る前に行われる処理です。
ループ条件ループを繰り返す条件です。
後処理ループ内の処理が1回終わるたびに行われる処理です。

for(拡張ループ)
書式
[ラベル:]…for(型 変数名 : {配列 | コレクション}){
  繰り返すべき処理
}
拡張ループと呼ばれる書式です。
項目説明
ラベルbreakやcontinueで利用できるラベルです。
各要素を参照するための変数の型です。
変数名各要素を参照するための変数名で、任意の名称をつけます。
配列繰り返し対象です。
コレクション繰り返し対象です。

解説
拡張ループと呼ばれる繰り返しです。 配列やコレクションに対し、要素の分だけ繰り返します。各要素は指定した変数を使ってアクセスできます。 for(int a : array)とすると1回目のループではaでarray[0]にアクセスでき、2回目はaでarray[1]にアクセスできます。

while
書式
[ラベル:]…while(ループ条件){
  繰り返すべき処理
}
項目説明
ラベルbreakやcontinueで利用できるラベルです。
ループ条件ループを繰り返す条件です。

概要ソースコード実行結果説明
繰り返し boolean f = true;
while(f){
  System.out.println("f = " + f);
  f = false;
}
f = true
f = false
指定した条件が真である間ブロック内を繰り返します。

do
書式
[ラベル:]…do{
  繰り返すべき処理
}while(ループ条件);
項目説明
ラベルbreakやcontinueで利用できるラベルです。
ループ条件ループを繰り返す条件です。

ループの制御
break
ループを抜ける場合に使用します。
書式
break [ラベル];
項目説明
ラベルbreakやcontinueで利用できるラベルです。

continue
ループ内の以後の処理を飛ばすのに使用します。
書式
continue [ラベル];
項目説明
ラベルbreakやcontinueで利用できるラベルです。
多重ループを一発で抜ける場合に利用できます。 乱用するとわかりにくくなるので避けたほうがよいでしょう。

メソッドの終了
書式
return [戻り値];
項目説明
戻り値メソッドの戻り値です。
戻り値の型はメソッドの定義と一致している必要があります。

解説
メソッドの戻り値がvoidの場合はreturnは不要です。 void以外の場合はreturnでメソッドの戻り値で指定した型の値を返す必要があります。

ソースコード説明
for(int i = 0;i < 3;i++){
  System.out.println("i = " + i);
}
変数iについて、初期値0、i < 3が成り立つ間繰り返します。1回繰り返すごとにiをインクリメントします。
int[] ar = {2,4,6};
for(int t : ar){
  System.out.println("t = " + t);
}
拡張ループです。配列の要素分繰り返します。参照中の要素は指定した変数に格納されます。
do{
  System.out.println("f = " + f);
}
while(f);
実行後に条件判定を行い、条件が真である間ブロック内を繰り返します。最低でも1回は繰り返します。
for(int i = 0;i < 4;i++){
  for(int j = 0;j < 4;j++){
    System.out.print("(" + i + "," + j + ")");
    if(i == 2 && j == 2){
      break;
    }
  }
  System.out.println();
}
breakが実行されると、現在実行中のループを抜けます。
label1:for(int i = 0;i < 4;i++){
  for(int j = 0;j < 4;j++){
    System.out.print("(" + i + "," + j + ")");
    if(i == 2 && j == 2){
      break label1;
    }
  }
  System.out.println();
}
ラベルを指定した場合、breakによってラベルに該当するループを抜けます。多重ループでも1度で抜けることが可能です。
for(int i = 0;i < 4;i++){
  for(int j = 0;j < 4;j++){
    if(i == 2 && j == 2){
      continue;
    }
    System.out.print("(" + i + "," + j + ")");
  }
  System.out.println();
}
continueが実行されると、ブロック内のそれ以降の処理はスキップされます。
label1:for(int i = 0;i < 4;i++){
  for(int j = 0;j < 4;j++){
    if(i == 2 && j == 2){
      continue label1;
    }
    System.out.print("(" + i + "," + j + ")");
  }
  System.out.println();
}
ラベルを指定した場合、continueによってラベルに該当するループを飛ばします。
トップ >  プログラミング言語 >  Java >  制御