分支
break与continue
break:使流程跳到循环体之外,接着执行循环体下面的语句
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的
//break 代码实例
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;
printf("%d ", i);
i = i+1;
}
return 0;
}
输出:
1 2 3 4
continue:跳过本次循环后面的所有代码,执行下一次循环
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断
//continue 代码实例2
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
i = i+1;
if(i == 5)
continue;
printf("%d ", i);
}
return 0;
}
输出:
2 3 4 6 7 8 9 10 11
if与else
if(判断条件)
{
}
else
{
}
判断条件中 0为假,其余均为真, 满足判断条件,执行if对应的内容,不满足执行else里面的内容,也可以没有else,即不满足if判断条件,就什么都不执行。
else是和它离的最近的if匹配的
if(判断条件)
{
}
if(判断条件)
{
}
if(判断条件)
{
}
else
{
}
也可以有多条if语句进行判断
switch
switch(整型表达式)
{
case 1: 执行语句;
case 2: 执行语句;
case 3: 执行语句;
case 4: 执行语句;
break; 直接跳出循环
default : break; 都不满足条件执行
}
练习题
1.输出1-100之间的奇数
#include<stdio.h>
int main(){
//输出1-100全部奇数
int i;
for(i=1;i<=100;i++)
{
if(i%2==0)
{
continue;
}
else
{
printf("%d\t",i);
}
}
return 0;
}
2.判断一个数是否为奇数
#include<stdio.h>
//判断输入数是否是奇数
int main()
{
int i;
printf("请输入一个数,让我们来判断是否是奇数:");
scanf("%d",&i);
if(i%2==0)
{
printf("%d这个数不是奇数",i);
}
else
{
printf("%d这个数是奇数",i);
}
return 0;
}
循环
for
语句1:初始化
语句2:判断
语句3:调整
for(语句1;语句2;语句3)
{}
示例
#include<stdio.h>
int main(){
for(int i=1;i<=10;i++)
{
printf("%d",i);
}
return 0;
}
输出:
12345678910
- 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
- 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
int i = 0;
//前闭后开的写法
for(i=0; i<10; i++)
{
}
//两边都是闭区间
for(i=0; i<=9; i++)
{
}
- for循环的初始化、调整、判断都可以省略,但是:for循环的判断部分如果被省略,那判断条件就是:恒为正,可能会照成一直满足条件一直输出。
while
先判断是否满足循环条件,满足即while(1),只要不是0,则都为1,再执行循环体,当为0时跳出循环
//break 代码实例
#include <stdio.h>
int main()
{
int i = 1;
while(i<=4)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
输出:
1 2 3 4
do while
先执行一次循环体,再判断是否满足条件
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d\n", i);
i++;
}while(i<=3);
return 0;
}
输出:
1
2
3
练习题
1.计算n的阶乘
#include<stdio.h>
int main(){
//计算n的阶乘
int i;
int num;
int mul;
printf("想求这个数的阶乘为多少:");
scanf("%d",&num);
for(i=1;i<=num;i++){
mul*=i;
}
printf("%d这个数的阶乘为:%d",num,mul);
return 0;
}
2.计算1!+2!+3!+…+10!
#include<stdio.h>
int main(){
int i;
int j;
int mul=1;
int sum;
for(i=1;i<=10;i++){
for(j=1;j<=i;j++){
mul*=j;
}
sum+=mul;
mul=1;
}
printf("1!+2!+3!+...+10!的值为:%d",sum);
}