C语言第五课:结束语句
break语句
#include "pch.h"
#include <iostream>
int main()
{
//找出小于100的所有素数(只能被1和自身整除的数)
/*定义两个数m和n,当n<m时,开始内层循环,
如果m除以n余数为0且此时m等于n(即被自身整除),就输出m*/
int m, n;
for (m = 2; m <= 100; m++)
{
for (n = 2; n < m; n++)
{
if (m%n == 0)
break;
}
if (m == n)
printf("%d ", m);
}
return 0;
}
剖析
第一次m=2 n=2 里面的表达式是n=2;n<2;n++ 假,执行if(m==n) 2除以2 余0 直接跳出循环 此时n的值是2 m==n所以输出m=2
第二次m=3 n=2 里面的表达式是n=2;n<3;n++ 两次循环 3除以2 余3 不成立 n++ 3除以3余0 跳出循环 而此时m=3 n=3所以输出m=3
第三次m=4 n=2 里面的表达式是n=2;n<4;n++ 三次循环 4/2 余0 跳出循环 m此时是4 n是2就跳出循环了 m!=2 不输出4
第四次m=5 n=2 里面的表达式是n=2;n<5;n++ 四次循环 5/2余5 5/3余5 5/4余5 5/5余0 跳出循环 此时m=5 n=5 输出5
第五次 m=6 n=2 6/2余0 break 6不等于2 不输出
第六次 m=7 n=2 一直循环到7/7才能break m=n输出7
第七次 m=8 n=2 8/2余0 m不等于n break 不输出
第八次 m=9 n=2 9/2余9 9/3余0 break 9不等于3 不输出
第九次 m=10 n=2 10/2余0 不输出
第十次 m=11 n=2 一直循环到11/11才能break
continue语句
//计算一到20不能被3整除数字之和
/*定义一个数i,让它与3相除,余数不为0,继续循环*/
int i, sum;
for ( i = 1,sum=0; i <=20; i++)
{
if (i%3!=0)
{
sum += i;
}
continue;
}
printf("sum=%d\n", sum);
/*古典问题:有一对兔子,从出生后第3个月起
每个月都生一对兔子,小兔子长到第三个月后
每个月又生一对兔子,假如兔子都不死,
问一年内每个月的兔子总数为多少?*/
int j, k;
for (i = 1; i <= 12; i++) //外层循环i:月份
{
j = i / 3; //整数型除法
sum = 1; //初始化兔子
for (k = 0; k <= j; k++)
{
sum *= 2; //内层循环,
}
printf("第%d各月的兔子总数为%d\n", i, sum);
}
break语句与continue语句的区别是:break是跳出当前整个循环,continue结束本次循环开始下一次循环