Bootstrap

素数判断中的一些自己的小问题 break

 如何判断素数:所谓素数是指除了1和它本身以外,不能被任何整数整除的数。如果m不能被2~√m间任一整数整除,m必定是素数。

先放出正确的代码:

#include<stdio.h>
#include<math.h>
int IsPrime(int a)                  //判断是否为素数
{
	int j;
	int k = (int)sqrt(a);
	for (j = 2; j <= k; j++)      
	{
		if (a % j == 0)
			break;          //break跳出for循环 
	}
	
	if (j>k)                      //执行完for循环(没有执行过break语句)  最后j++ 此时 j = k+1 
	{
		printf("%2d ", a);
	}
	
}
int main()
{
	for (int i = 100; i <= 200; i++)
	{
		IsPrime(i);
	}
	getchar();
	return 0;
}

然后说说  关于break的问题:

break 语句是限定转向语句,它使流程跳出所在的结构之后。break语句在循环结构中的作用是相同的:跳出所在的循环结果,转向执行该循环结构后面的语句。如for。while。do-while 循环语句

break通常与if语句关联在一起:满足条件就跳出循环,不是跳出if语句

(1)break语句对if-else语句不起作用,(不是跳出if语句

(2)在多层循环中,一个break语句只是向外跳出一层循环

ps:关于break,continue的区别  下次再写

关于自己的问题  注意是错误的

for (j = 2; j <= k; j++)
	{
		if (a % j == 0)
			break;	             
                else                        //即a%j!=0   这段代码只是判断了能不能被2整除;
               {                           
			printf("%2d  ",a);  //printf输出的是奇数,并不是偶数;
                       break;     
		}
	}
 这段代码 for循环 根本就没有意义         

ps:  有时候 真是自己写的东西 自己都看不懂     真是有点蠢..............

         突然感觉自己的脑袋不够用了

  


 

;