[問題] 關於未指定的區域變數

看板C_Sharp作者 (萩旻)時間13年前 (2010/11/19 13:37), 編輯推噓4(409)
留言13則, 5人參與, 最新討論串1/1
一直搞不懂在偵錯時出現的"未指定區域變數"到底是什麼意思 明明已經宣告過了...為什麼還是會出現這個問題冏" 我承認以下是作業範例.. (這樣應該不算是問作業吧XDDD 程式是自己打出來的..) int[] a = new int[6]; int i,max,min ; Console.WriteLine("輸入六組數字比大小:"); for(i=0 ; i<=5 ; i++) { a[i]=int.Parse(Console.ReadLine()); for(i=0 ; i<=5 ; i++) { if(a [i] > max) //這裡的max有問題..可是已經宣告過了ORZ max=a[i]; if(a [i] < min) //這裡的min同上 min=a[i]; } } Console.WriteLine("最大={0},最小={1}",max,min); Console.Read(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.137.105.105

11/19 13:49, , 1F
你宣告是宣告了, 但還沒給過他值
11/19 13:49, 1F

11/19 13:55, , 2F
可是我後來宣告max min都=0 也是一樣的情況
11/19 13:55, 2F

11/19 13:56, , 3F
可以請問一下..什麼情形下需要給初值(做加減乘除運算嗎?)
11/19 13:56, 3F

11/19 14:10, , 4F
第一層跟第二層的for迴圈不能都用i吧
11/19 14:10, 4F

11/19 14:17, , 5F
未指定初始值,只有宣告是不能用的
11/19 14:17, 5F

11/19 14:17, , 6F
所有變數都要先賦值過才能用
11/19 14:17, 6F

11/19 14:19, , 7F
你指定min max後還不能用是因為你迴圈錯寫成兩層
11/19 14:19, 7F

11/19 14:20, , 8F
在外層剛指定完a[0]的value後內層就去跑a[0] ~ a[5]
11/19 14:20, 8F

11/19 14:21, , 9F
array後面其他值也是未初始化
11/19 14:21, 9F

11/19 14:23, , 10F
兩個迴圈應該獨立就好,初值可以用int.MaxValue、MinValue
11/19 14:23, 10F

11/19 14:24, , 11F
恩..知道了不知道為什麼這次RUN出來了..可是我寫錯了QAQ
11/19 14:24, 11F

11/19 14:55, , 12F
回站內信給你囉
11/19 14:55, 12F

11/19 14:58, , 13F
另外array宣告的時候會自動初始化吧...
11/19 14:58, 13F
文章代碼(AID): #1CvWqX8D (C_Sharp)