关于 查找类型问题

这是一个困扰我有点久的问题主要原因是因为我太过急躁。看任何代码的题型,或者解决方案必须一步一步来冷静。下面就是例子

:它是让你判断出质数是哪些,并且输出。

首先这里循环就有 1 依次用数组里的数     2依次除以2~num.Length 之间的数3  输出判定出的质数

(质数判定是:一个数只能整除自己本身和一,换句话说就是和其他的数不能整除有余)

由于已经知道是查找问题,先直接定义了 bool类型   isfind    一开始并没找到,所以是false

1 2   通过判断很简单的看出是一个嵌套循环。所以  运用了两个for循环。

bool isfind
= false;
Console.WriteLine("所有质数是:");
for (int i = 0; i < num.Length; i++)
{
for (int j = 2; j < num[i]; j++)
{
if (num[i] %j == 0)
{
isfind = true;                                                                       好的,从这里开始,问题出现了,首先找到了不是质数的数,isfind自然是要变为ture   然后break 结束整个嵌套在内的for循环语句。注意!!;结束之后,isfind已经变为了true

break;                                                                                  我犯的错误主要是!!!并没有继续往下运行,而是又开始从外面的 for 循环开始判断 ,所以自然    isfind依然等于 true!!(我依然很急躁的写不出代码)这就导致 哪怕我后面开始运行后面的数据,至                                                                                                 少也会丢掉一个数据。

                                                                                                 仔细看,到后面发现,自己思维急躁,导致并没有按照语句运行,而是自己是纠结在for循环上,导致自己大意出错。

}

}
                                                                                                    唉,反正 一定要冷静,不要急躁,年轻人,真的气死个人
if (!isfind)
{
Console.WriteLine(num[i]);
}
isfind = false;

}

猜你喜欢

转载自www.cnblogs.com/1327b/p/9428013.html