目次
01. for文とは
02. break
03. continue
04. その他
for文とは
for文の構造とサンプル
処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
繰り返しはループとも呼ばれます。
for (初期化式(1.値を初期化) ; 条件式(2.条件) ; 増減式(3.値を更新)){ 実行される処理 } |
コード
public class Test1 {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println(i); // 0 1 2が出力される
}
}
}
4行目は、初期化式(int i = 0)によりiは0から始まります。
増減式(i++)によりiの値は、1ずつ増えていきます。
条件式(i <3)がtrueの間は処理を繰り返し、iが3になるとfalseになるので終了します。
point
・初期化式は、最初に1回だけ実行されます。
・条件式がtrueの間、処理を繰り返します。
・増減式(3.値を更新)でカウンター変数/ループ変数の値が変わります。
・使用する変数をカウンター変数またはループ変数といいます。変数名はiやjがよく使用されます。
・条件式がfalseになるとループ処理を終了します。
配列の値を取得
String[] color = {"red","yellow","blue"}; // 配列
for (int i = 0; i < color.length; i++) {
System.out.println(color[i]); // red yellow blueが出力される
}
3行目のlengthは、配列の長さを返します。
4行目は、変数と添字[i]で配列の値を表示しています。配列の添字は0から始まります。
リストの値を取得
import java.util.ArrayList;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
List<String> color = new ArrayList<>();
color.add("red");
color.add("blue");
for (int i = 0; i < color.size(); i++) {
System.out.println(color.get(i)); // red blue
}
}
}
リストの要素はget(i)で取得します。リストの添字は0から始まります。
breakでループを抜ける
for (int i = 0; i < 3; i++) {
if (i == 1) {
break;
}
System.out.println(i); // 0が出力される
}
breakでループを抜けます。
breakを2重ループで使った場合
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
if (j == 0) {
break;
}
System.out.println("j=" + j); //出力なし
}
System.out.println("i=" + i); // i=0 i=1が出力される
}
for文が2つあり2重ループ(入れ子)になっています。
breakは、内側のfor文のみ抜けます。
breakとラベルで2重ループを抜ける
label1:for(int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
if (j == 3) {
break label1;
}
System.out.println(j); //0,1,2が出力される
}
System.out.println(i); // 出力なし
}
System.out.println("終了"); // 出力される
forが2つある2重ループです。label1はラベルです。
4行目のbreakとラベルで外側のfor文を抜けます。
point
ラベル: for(初期化式 ; 条件式 ; 増減式){ break ラベル; } |
breakとラベルで2重ループを抜けています。
continueでループの先頭に戻る
for (int i = 0; i < 3; i++) {
if (i == 1) {
continue;
}
System.out.println(i); // 0 2が出力される
}
continueでループ処理の先頭に戻ります。(ブロックの先頭位置に戻ります)
continueを2重ループで使った場合
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
if (j == 0) {
continue;
}
System.out.println("j=" + j); //j=1 j=1が出力される
}
System.out.println("i=" + i); // i=0 i=1が出力される
}
for文が2つあり2重ループ(入れ子)になっています。
4行目のcontinueは、内側のfor文の先頭の2行目に戻ります。
ループで加算しない(拡張for文)
int array[] = {1, 2, 3}; //配列
for (int a: array){
System.out.println(a); //1 2 3が出力される
}
1行目は、配列です。
point
for( データ型 変数1 : 配列やコレクションの変数2 ){ 実行される処理 } |
上記for文との違いは、変数の値を加算する処理がありません。
配列やコレクションの要素を順番にアクセスします。
無限ループの止め方(Eclipse使用時)
Eclipse使用時に無限ループになった時は、「コンソール」タブにある四角の赤いアイコンを押します。(Eclipse 4.8)
関連の記事