avaの問題集で
「正の整数値を読み込んで、その桁数を出力するプログラムを作成せよ」
(たとえば9999と入力したら
『4桁』
という表示がされるプログラムを作成せよ)
という問題をやっていたのですが、そこでintの初期値に関する事で疑問点がありました。
問題に対する私の答えとして以下のコードを実行使用したところ、エラーになってしまいました。エラー文は下に記載します。
java
1import java.util.Scanner; 2 3public class Main{ 4 public static void main(String[] args){ 5 Scanner stdIn = new Scanner(System.in); 6 7 System.out.println("正の整数値の桁数を求めます。"); 8 int x = stdIn.nextInt(); 9 System.out.println("正の整数値:"+x); 10 11 int keta; 12 while(x > 0){ 13 keta++; 14 x = x /10; 15 } 16 System.out.println("その数は"+keta+"桁です"); 17 } 18}
エラーメッセージは以下の通りです。
Main.java:13: error: variable keta might not have been initialized keta++; ^ Main.java:16: error: variable keta might not have been initialized System.out.println("その数は"+keta+"桁です"); ^ 2 errors
int keta;
のところを
int keta = 0;
に直したら正常に実行できたのですが、int のデフォルト値は0なのであえてint keta = 0と、初期値に0を入れなくても良い気がするのですが、私の勘違いでしょうか?
どなたかご解説いただけると幸いです。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。