実現したいこと
再起関数内で、乱数を発生させて配列に格納したいのですが、すべて同じ数字になってしまいます。
なぜこうなってしまうんでしょうか・・・。
※ソースコードは核となる部分だけ取り出し単純化しています。forループを使えばいいのになど思われるかもしれませんが、現在作っている本来のプログラムの都合上、再起関数で実現したいのでその点はあらかじめご了承ください。
該当のソースコード
C#
1using System; 2using System.Windows.Forms; 3 4namespace _2019_12_20実験 5{ 6 7 public partial class Form1 : Form 8 { 9 const int ArraySize = 5; 10 11 public Form1() 12 { 13 InitializeComponent(); 14 15 int[] array1 = new int[ArraySize]; 16 17 random_func(0, array1); 18 19 for (int i = 0; i < ArraySize; i++) 20 { 21 textBox1.Text = textBox1.Text + array1[i]; 22 } 23 } 24 25 26 private void random_func(int i, int[] array) 27 { 28 Random rand = new Random(); 29 30 array[i] = rand.Next(0, 10); 31 32 if (i < ArraySize - 1) 33 { 34 random_func(i + 1, array); 35 } 36 } 37 38 } 39}
補足情報(FW/ツールのバージョンなど)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/22 07:26