teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

フラグ管理

2017/05/28 05:07

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -1,4 +1,28 @@
1
1
  breakが内側のfor文にしか効かないので、無限ループの外側のfor文を抜け出すことができません。
2
2
  何らかの方法で外側のforを抜ける必要があります。対処法としては
3
3
  0. 外側のforでフラグを用意し、内側の条件でフラグを立て、内側を抜けた後判定
4
+ ```java
5
+ for(;;){
6
+ System.out.println("一桁の数字を入力してください");
7
+ int number[] = {3,4,9};
8
+ //正解判定用フラグ
9
+ boolean right = false;
10
+ for (int n: number){
11
+ int input = new java.util.Scanner(System.in).nextInt();
12
+ //正解した時の処理
13
+ if (input == n){
14
+ System.out.println("あたり");
15
+ System.out.println("ゲームを終了します");
16
+ right = true;
17
+ break;
18
+ } else {
19
+ System.out.println("残念もう一度");
20
+ }
21
+ }
22
+ if (right) {
23
+ break;
24
+ }
25
+ }
26
+ ```
27
+
4
28
  0. 外側のforにラベルを設定し、内側のbreakでラベル指定する(あまりお勧めしない)