こんばんは。C#でプログラミング問題を解いているのですが、「Use of unassigned local variable `a'」エラーが出て困っています。実際の問題は少し複雑なので、コードはできるだけ簡単なものに書き換えています。
以下のコードで、int型変数aを宣言して、forループを回してカウンタ変数iが1のときにaに1を代入して、最後にaを出力したいです。
main.cs
1using System; 2public class Hello{ 3 public static void Main(){ 4 5 int a; 6 7 for(int i = 0; i < 2; i++) 8 { 9 if(i == 1) 10 a = 1; 11 } 12 13 Console.WriteLine(a); 14 } 15} 16 17
コードを上から読んでいくと、for文の2回目のループのときにaに1が代入されて、aに値が割り当てられているので、Console.WriteLine(a);
で上記のエラーが出る理由がよくわかりません。
個人的には、コンパイル時にはループが実行されるわけではないので、aに値が代入されないまま、Console.WriteLine(a);
が呼ばれてしまって、このエラーが出ているのではないかと思うのですが...
int a = 0;
というように、aを宣言するのと同時に初期化しておけば、このエラーは出ないので最初からそうすればいいのですが、エラーが出る理屈がどうしても気になったので質問させてもらいました。回答よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/23 16:46
退会済みユーザー
2017/11/23 17:02 編集