C语言第三天#S1E15E16

break语句

求素数的时候需要将数字除以2345678直到num/2,即使得出这个数不是素数,仍需要将剩下的数都除上一遍,i会不断增大直到=num/2。

#include <stdio.h>
 
int main()
{
	int i,num;
	int flag = 1; 
 
	printf("请输入一个整数:\n");
	scanf("%d",&num);
	
	for (i = 2; i < num / 2; i++)
	{
		if (num % i == 0)
		{
			flag = 0;
			//break;
		}
	 } 
	 
	if(flag)
	{
		printf("%d是一个素数。\n",num);
	}
	else
	{
		printf("%d不是一个素数。\n",num);
	}
	printf("i=%5d",i);
	return 0;
}

如果在循环后加入break语句,则会跳出该循环直接执行下面的语句。

#include <stdio.h>
 
int main()
{
	int i , j;
	for(i = 0; i < 10; i++)
	{
		for(j = 0; j < 10; j++)
		{
			if ( j == 3)
			{
				break;	
			}
		}
	}
	
	printf("i=%d, j=%d \n",i,j);
	return 0;
}

可以看到当内循环每次执行到j==3后不再继续执行内循环,都会跳出执行外循环。

如果想要当j==3时,跳出整个循环,需要在外循环上再增加一个break;

#include <stdio.h>
 
int main()
{
	int i , j;
	for(i = 0; i < 10; i++)
	{
		for(j = 0; j < 10; j++)
		{
			if ( j == 3)
			{
				break;	
			}
		}
		if (j==3)
		{
			break;
		}
	}
	
	printf("i=%d, j=%d \n",i,j);
	return 0;
}

continue语句

当执行continue语句的时候,循环体里剩下的语句不会被执行,而是进入下一次循环。

#include <stdio.h>
 
int main()
{
	int ch;
	
	while ( (ch = getchar()) != '\n')
	{
		if (ch == 'C')
		{
			continue;
		}
		putchar(ch);
	}
	putchar('\n'); 
	return 0;
}

getchar获取字符值,putchar输出字符值。返回的是ASCII码,int型

如果输入的字符里出现的C,则不显示。

不同点:while语句和for语句

将下面的for语句改成while语句

#include <stdio.h>
 
int main()
{
	int i;
	
	/*for (i=0; i<100;i++)
	{
		if( i % 2)
		{
			continue;
		}
	}
	*/
	i=0;
	while (i<100)
	{
		if(i % 2)
		{
			continue;
		}
		i++;
	}
	 
	return 0;
}

for语句可以正常执行,而while语句则进入了死循环。

原因是while语句中的continue会使得程序跳过i++。

细碎知识点补充:

当对变量进行赋值时,++i与i++是不一样的

j=i++先赋值再加,j=++i先加再赋值

逗号表达式

条件运算符

goto语句

用了容易死循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值