83308


java初心者です。あるjava本にて学習していたところ、下記のサンプルコードを入力すると上記のエラーが発生しました。対処法がわからない為、どなたかご教授いただければ幸いです。＊もう一つ同じような例を追加しました

[code]

     public static void main(String[] args) {
      int c;
      
      for(int i = 0; i< 10; i++){
       System.out.println("文字を入力してください。");
       
       try{
        c = System.in.read();
        }catch(Exception e){}
        
        if(c == 65){  //入力された文字が'a'の場合
         break;
        }
      }
     }
    } 
    
[/code]

追加↓

[code]

    public static void main(String[] args){
     int c;
     for(int i =0; i < 2; i++){
      System.out.println("繰り返し" + i + "回目");
      
      for(int j =0; j < 10; j++){
       System.out.println("文字を入力してください。");
       
       try{
         c = System.in.read();
        }catch(Exception e){}
        
        if(c == 65){  // 入力された文字が'a'の場合
            break;
            }
           }
          }
         }
        }
       
    
[/code]


CC BY-SA 4.0
2021-10-28T11:40:06.593
83307
2021-10-28T12:35:45.710
2021-10-28T11:50:04.227
48535
48535
question
java
java 変数cは初期化されていない可能性があります。のエラーが発生してしまう。


エラーメッセージのとおり、変数`c`が初期化されない状態で`if(c == 65)`が実行される可能性があるために発生しているということでしょう。

`try`・`catch`で囲んでいる`c = System.in.read();`の部分で例外が発生すると起こり得ます。

エラーメッセージの内容に従って、例えば`int c;`を`int c = 0;`のように変数の宣言時に初期化する等対処してください。

あるいは例外発生時の処理`}catch(Exception e){}`を`}catch(Exception e){c = 0;}`とするのでも良いでしょう。

参考記事の例：  
[初期化されていない可能性がありますに対しての考察](https://joytas.net/programming/java/local-variable)  
[補足(1):
「変数は初期化されていない可能性があります」というエラーについて](https://teachingprogramming.net/archives/627)


CC BY-SA 4.0
2021-10-28T12:35:45.710
83308
2021-10-28T12:35:45.710
26370
83307
answer