回答編集履歴

3 コメント行の内容を変更

umyu

umyu score 5685

2017/05/14 00:24  投稿

```Java
public class Gamelevel{
   private static int level;
   public static void levelInput(){
       System.out.println("数字を入力してレベルを選んでください");
       System.out.println("0:レベル1 3桁 1:レベル2 4桁 2:レベル3 5桁");
       int level = new java.util.Scanner(System.in).nextInt()+3;
   }
   public static int getLevel(){
       return level;
   }
}
```
IDE([eclipse](https://www.eclipse.org/downloads/)、[netbeans](https://netbeans.org/downloads/))をインストールしてデバック実行するのが一番いいと思いますが。
大まかな調べ方をプログラムを実行すると以下の内容がコンソールに出力されます。
<< 大まかな調べ方 >>
質問文のプログラムを実行すると以下の内容がコンソールに出力されます。
|入力/出力|内容|ソースコードの箇所||
|:--|:--|:--:|
|出力|数字を入力してレベルを選んでください|GamelevelクラスのlevelInput|
|出力|0:レベル1 3桁 1:レベル2 4桁 2:レベル3 5桁|GamelevelクラスのlevelInput|
|入力|0|GamelevelクラスのlevelInput|
|出力|予想するナンバーを1つずつ入力してください|PredictクラスのPredict (コンストラクタ)|
|出力|0BITE-0EAT|AnswerCheckerクラスのcheck|
|出力|GAME CLEAR!!|Numeron2クラスのmain|
|出力|あなたはクリアに1ターンかかりました|Numeron2クラスのmain|
1,PredictクラスのPredict(コンストラクタ)でScannerで入力待ちを行ってますが、上記表にPredict#Predictの入力待ちがないため、**ループの条件外**ということが分かります。
```Java
for(int a = 0;a < predict.length; a++){
  predict[a] = new java.util.Scanner(System.in).nextInt();
}
```
predict = new int[d]; ←理由はこの配列のlengthが0なため。
predict = new int[d]; ←理由は配列(predict)のlengthが0なため。
2,Numeron2クラスのmainメソッドにてPredictクラスをnew Predictで生成する時に引数の値としてAnswer.getDigit()を渡してます。
```Java
Predict p1 = new Predict(Answer.getDigit());
```
AnswerクラスのgetDigit
```Java
public static int getDigit() {
  return digit;
}
```
3,AnswerクラスのanswerGeneratorにてGamelevelクラスのgetLevel より値を取得してます。
2 大きさ=>length

umyu

umyu score 5685

2017/05/13 22:25  投稿

```Java
public class Gamelevel{
   private static int level;
   public static void levelInput(){
       System.out.println("数字を入力してレベルを選んでください");
       System.out.println("0:レベル1 3桁 1:レベル2 4桁 2:レベル3 5桁");
       // ↓ここ ローカル変数になってます。そのためGamelevel.levelの値が上書きされずに 0となります。行頭のintを削除してください。
       int level = new java.util.Scanner(System.in).nextInt()+3;
   }
   public static int getLevel(){
       return level;
   }
}
```
IDE([eclipse](https://www.eclipse.org/downloads/)、[netbeans](https://netbeans.org/downloads/))をインストールしてデバック実行するのが一番いいと思いますが。
大まかな調べ方をプログラムを実行すると以下の内容がコンソールに出力されます。
|入力/出力|内容|ソースコードの箇所||
|:--|:--|:--:|
|出力|数字を入力してレベルを選んでください|GamelevelクラスのlevelInput|
|出力|0:レベル1 3桁 1:レベル2 4桁 2:レベル3 5桁|GamelevelクラスのlevelInput|
|入力|0|GamelevelクラスのlevelInput|
|出力|予想するナンバーを1つずつ入力してください|PredictクラスのPredict (コンストラクタ)|
|出力|0BITE-0EAT|AnswerCheckerクラスのcheck|
|出力|GAME CLEAR!!|Numeron2クラスのmain|
|出力|あなたはクリアに1ターンかかりました|Numeron2クラスのmain|
1,PredictクラスのPredict(コンストラクタ)でScannerで入力待ちを行ってますが、上記表にPredict#Predictの入力待ちがないため、**ループの条件外**ということが分かります。
```Java
for(int a = 0;a < predict.length; a++){
  predict[a] = new java.util.Scanner(System.in).nextInt();
}
```
predict = new int[d]; ←理由はこの配列の大きさが0なため。
predict = new int[d]; ←理由はこの配列のlengthが0なため。
2,Numeron2クラスのmainメソッドにてPredictクラスをnew Predictで生成する時に引数の値としてAnswer.getDigit()を渡してます。
```Java
Predict p1 = new Predict(Answer.getDigit());
```
AnswerクラスのgetDigit
```Java
public static int getDigit() {
  return digit;
}
```
3,AnswerクラスのanswerGeneratorにてGamelevelクラスのgetLevel より値を取得してます。
1 引用文を追加

umyu

umyu score 5685

2017/05/13 21:59  投稿

```Java
public class Gamelevel{
   private static int level;
   public static void levelInput(){
       System.out.println("数字を入力してレベルを選んでください");
       System.out.println("0:レベル1 3桁 1:レベル2 4桁 2:レベル3 5桁");
       // ↓ここ ローカル変数になってます。そのためGamelevel.levelの値が上書きされずに 0となります。行頭のintを削除してください。
       int level = new java.util.Scanner(System.in).nextInt()+3;
   }
   public static int getLevel(){
       return level;
   }
}
```
IDE([eclipse](https://www.eclipse.org/downloads/)、[netbeans](https://netbeans.org/downloads/))をインストールしてデバック実行するのが一番いいと思いますが。
大まかな調べ方をプログラムを実行すると以下の内容がコンソールに出力されます。
|入力/出力|内容|ソースコードの箇所||
|:--|:--|:--:|
|出力|数字を入力してレベルを選んでください|GamelevelクラスのlevelInput|
|出力|0:レベル1 3桁 1:レベル2 4桁 2:レベル3 5桁|GamelevelクラスのlevelInput|
|入力|0|GamelevelクラスのlevelInput|
|出力|予想するナンバーを1つずつ入力してください|PredictクラスのPredict (コンストラクタ)|
|出力|0BITE-0EAT|AnswerCheckerクラスのcheck|
|出力|GAME CLEAR!!|Numeron2クラスのmain|
|出力|あなたはクリアに1ターンかかりました|Numeron2クラスのmain|
1,PredictクラスのPredict(コンストラクタ)でScannerで入力待ちを行ってますが、上記表にPredict#Predictの入力待ちがないため、**ループの条件外**ということが分かります。
```Java
for(int a = 0;a < predict.length; a++){
  predict[a] = new java.util.Scanner(System.in).nextInt();
}
```
predict = new int[d]; ←理由はこの配列の大きさが0なため。
2,Numeron2クラスのmainメソッドにてPredictクラスをnew Predictで生成する時に引数の値としてAnswer.getDigit()を渡してます。
```Java
Predict p1 = new Predict(Answer.getDigit());
```
AnswerクラスのgetDigit  
```Java  
public static int getDigit() {  
  return digit;  
}  
```  
3,AnswerクラスのanswerGeneratorにてGamelevelクラスのgetLevel より値を取得してます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る