看板 C_Sharp 關於我們 聯絡資訊
產生1~42不重複的亂數..模擬樂透開獎情形.. int [] num = num int[8]; Random rnd = new Random(); int getdata; bool reapeatdata; int tot = 1 do { getdata = rnd.Next(1,43); //取得1~42亂數 repeatdata = false; //先假設不重複 for(int i = 1;i<=tot;i++) //這邊不懂,為何 i<=tot { if(getdata==num[i]) // 因為i=1,所以會跑回圈,進入到if(getdata==num[i]) { 所以getdata(26 亂數產生) = num[1]..是這樣解釋嗎? reapeatdata = true; break; } } if(reapeatdata == false //因為i從1開始,i++,i從2進入回圈..但i<=tot { 不符合條件,所以跳出回圈執行這一行... num[tot] = getdata; 因為reapeatdata == false(一開始預設的) tot++; num[1] = getdata(26) } tot = 2 while(tot<8) // 因為tot = 2 符合while 再開始回圈 對於上面兩個if敘述小弟很模糊..... 小弟想問num[0]在哪個點會出現? 或是可以把小地解釋不隊的地方改一下... 小弟非常想釐清觀念..謝謝.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.143.144
superplok:for那在判斷有沒有跟前面重複, 重複reap = true 07/25 01:45
superplok:num[0]應該沒用到 07/25 01:47