これが私の問題を示すためのいくつかの簡単なコードです:
void method()
{
for(int i = 0;i<=99)
{
method1();
method2();
}
}
void method1()
{
if(Randombool())
{
bool exists = true;
int n;
while(exists)
{
n=RandNum(100);
exists = list1.Exists(num => num == n);
}
list1.add(n);
}
}
void method2()
{
int n;
bool exists = true;
bool exists2 = true;
while(!(exists && !exists2))
{
n = RandNum(100);
exists = list1.Exists(elem => elem == n);
exists2 = list2.Exists(elem => elem == n);
}
list2.add(n)
}
それがwhile
method2からのループで長い間スタックすることは明らかです。
待つのを避けるために、もっと穏やかな方法で数字を生成する方法はありますか?