Javaの勉強も少しずつ進んでます。if文、switch文、for文などが出てきました。if文と switch文は、プログラムが上から下に流れて終わりますが、for文は、処理を繰り返すという少しややこしい処理なので、メモしておきます。
上記画像は、下記の for文のプログラムを実行した結果です。
public class SampleFor {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
System.out.println("end");
}
}
上記 for文の構造は、以下のようになります。
public class SampleFor {
public static void main(String[] args) {
for (1.初期値の設定; 2.処理を繰り返すかどうかの条件; 4.3の処理が終わった後の処理) {
3.2の条件が満たされたらおこなう繰り返しの処理;
}
System.out.println("end");
}
}
-
初期値の設定
int i = 0
整数型の変数 iの値として 0をセット
-
処理を繰り返すかどうかの条件
i < 3
iが 0なので条件クリア
-
2の条件が満たされたらおこなう繰り返しの処理
System.out.println(i)
iの値 0を画面に表示して改行
-
3の繰り返し処理が終わった後の処理
i++
iの値 0に 1を加算して iの値を 1にする
以下、2の条件を満たす限り、2→3→4のループを繰り返します。
ここまでは基本です。続いて、終了する時の変数 iを最後の行に表示させようとして、以下のように変更します。
public class SampleFor {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
System.out.println("最後は" + i + "です。");
}
}
これを実行すると、下記のエラーが出力されます。変数 iがfor文の中で宣言されているので、その外側にある iは宣言されていないことになっています。
SampleFor.java:6: エラー: シンボルを見つけられません
System.out.println("最後は" + i + "です。");
^
シンボル: 変数 i
場所: クラス SampleFor
エラー1個
変数 iをfor文の「内」と「外」で同じ扱いとしたい場合は、下記の位置で変数 iを宣言します。
public class SampleFor {
public static void main(String[] args) {
int i;
for (i = 0; i < 3; i++) {
System.out.println(i);
}
System.out.println("最後は" + i + "です。");
}
}
上記を実行すると、下記のようになります。
0
1
2
最後は3です。
-- Press any key to exit (Input "c" to continue) --
使用している参考書はこちら。
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)