目录
1. 循环中break和continue的作用
(1)其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的。
(2)continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断
int main(){
int i = 0; //循环变量的初始化
while(i<=9) //循环变量的判断
{
//if(i == 5)
//break; //直接终止循环;
i++; // 循环变量的调整
//if(i == 5)
// continue; //跳出此次循环,执行下一次循环;
printf("%d ",i);
}
}
//注意:continue的位置要在i++的下面,不然会死循环
2. 分支循环相关例题
2.1 三个数求最大值中间值最小值
思路一:一一比较
思路二:采用交换赋值
int a = 0; int b = 0; int c = 0;
printf("please input 3 numbs: ");
scanf("%d%d%d",&a,&b,&c);//要使a最大,b次之,c最小;
if(a<b)
{
int tmp = a;
a = b;
b = tmp;
}
if(a<c)
{
int tmp = a;
a = c;
c = tmp;
}
if(b<c)
{
int tmp = b;
b = c;
c = tmp;
}
printf("max = %d, mid = %d, min = %d\n",a,b,c);
2.2 求最大公约数
//辗转相除法
int m = 0; int n = 0;
printf("please input two numbers: ");
scanf("%d%d",&m, &n);
//while(m%n != 0)//不等于0就是真,也可以写成下面形式;
while(m%n)
{
int r = 0;
r = m%n;
m = n;
n = r;
}
printf("最大公约数是%d\n", n);
2.3 求闰年
判断闰年:1.能被4整除但不能被100整除;或者2.能被400整除;
int year = 0;
int count = 0;
for(year=1000; year<= 2000; year++)
//判断闰年:1.能被4整除但不能被100整除;或者2.能被400整除;
{
if((year%4 == 0 && year%100 != 0) ||(year%400 == 0))
{
printf("%d ",year);
count++;
}
}
printf("\nThere are %d leap years\n",count);
2.4 求素数
试除法:只能被1和其本身整除
int i = 0; int count =0;
for(i=100; i<=200; i++)
{
//判断素数:试除法(只能被1和其本身整除);
int j = 0;
for(j=2; j<i; j++)
//for(j=2; j<=sqrt(i*1.0); j++)//优化方法
{
if(i%j == 0)
{
break;
}
}
if(j == i)
//注意思路:有两种情况会从以上for循环跳出来,一是break,二是j=2到i-1遍历完都不能被i整除;只有第二种情况是素数,因此用if判断出第二种情况;
//if(j > sqrt(i*1.0))//优化方法
{
printf("%d ",i);
count++;
}
}
printf("\nthere are %d prime numbers\n",count);
2.5 数9的个数
int i = 0;
int count = 0;
for(i=1; i<=100; i++)
{
if (i % 10 == 9)
{
count++;
printf("%d ", i);
}
if (i / 10 == 9)//此处用if是平行关系,若是else if会只有19个,不会重复计数
{
printf("%d ", i);
count++;
}
}
printf("\nthere are %d nine totally.\n",count);