这是一个困扰我有点久的问题主要原因是因为我太过急躁。看任何代码的题型,或者解决方案必须一步一步来冷静。下面就是例子
:它是让你判断出质数是哪些,并且输出。
首先这里循环就有 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;
}