一.顺序结构
1.语句按照一定先后顺序去执行。
二.选择结构
1.单分支if选择结构(先判断表达式是否成立,如果成立,就执行语句)
if(表达式)
{
语句;
}
2.双分支if选择结构(先判断表达式是否成立,如果成立,则执行语句1,否则,执行语句2)
if(表达式)
{
语句1;
}
else
{
语句2;
}
案例:输入一个年份,判断该年为平年还是闰年
#include <stdio.h>
//案例:输入一个年份,判断该年为平年还是闰年
int main(void)
{
int year = 0;
printf("请输入你想要判断的年份:\n");
scanf("%d",&year);
if(0 == year%4 && 0 != year%100 || 0 == year%400)
{
printf("%d年为闰年\n",year);
}
else
{
printf("%d年为平年\n",year);
}
return 0;
}
3.多分支if选择结构(从上往下,依次去判断表达式是否成立,如果表达式成立,则执行对应的语句)
If(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else if(表达式3)
{
语句3;
}
。。。。
else if(表达式n)
{
语句n;
}
else
{
语句n+1;
}
案例:输入成绩,判断成绩的等级
90+:AAA
70-90:BBB
60-70:CCC
60以下:DDD
#include <stdio.h>
//输入成绩,判断成绩的等级
//90+:AAA
//70-90:BBB
//60-70:CCC
//60以下:DDD
int main()
{
int grade = 0;
printf("请输入你想要判断的成绩:\n");
scanf("%d",&grade);
if(grade >= 90)
{
printf("AAA\n");
}
else if(grade >= 70)
{
printf("BBB\n");
}
else if(grade < 70 && grade >= 60)
{
printf("CCC\n");
}
else
{
printf("DDD");
}
return 0;
}
4.switch语句
switch(表达式)
{
case 标号1:
语句1;
case 标号2:
语句2;
case 标号3:
语句3;
。。。。
case 标号n:
语句n;
default:
语句n+1;
}
注意:
(1)表达式不能为float类型;
(2)标号必须为常量;
(3)当表达式等于标号时,就冒号后面的语句,直到switch,case语句结束为止,或者遇到break语句结束。
案例:输入年份、月份、判断该年该月有多少天?
#include <stdio.h>
//输入年月,判断该年该月有多少天
//1,3,5,7,8,10,12----31天
//4,6,9,11--------30天
//2月:闰年:29天
平年:28天
int main(void)
{
int year = 0;
int montn = 0;
printf("请输入你要判断的年月:\n");
scanf("%d%d",&year,&month);
switch(month)
{
case 4:
case 6:
case 9:
case 11:
printf("%d年%d月有30天\n",year,month);
break;
case 2:
if(0 == year%4 && 0 != year%100 || 0 == year%400)
{
printf("%d年%d月有29天\n",year,month);
}
else
{
printf("%d年%d月有28天\n",year,month);
}
break;
default:
printf("%d年%d月有31天\n",year,month);
}
return 0;
}
三.循环结构
1.for循环(先执行表达式1,然后执行表达式2,如果表达式2为真,执行循环体,然后执行表达式3;如此反复,当表达式2为假时,结束循环)
for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1:循环的起始条件
表达式2:循环的终止条件
表达式3:循环变量的变化
案例:用for循环实现1-100求和
#include <stdio.h>
//用for循环实现1-100求和
int main(void)
{
int i = 0;
int sum = 0;
for(i=0;i<=100;i++)
{
sum += i;
}
printf("sum = %d\n",sum);
printf("i = %d\n",i);
return 0;
}
2.while语句(判断表达式是否成立,如果成立,就执行循环体,反之,跳出循环)
While(表达式)
{
循环体;
}
案例:使用while语句实现1-100之和
#include <stdio.h>
//用while实现1-100求和
int main(void)
{
int i = 0;
int sum = 0;
while(i<=100)
{
sum += i;
i++;
}
printf("sum = %d\n",sum);
printf("i = %d\n",i);
return 0;
}
3.do..while语句(先去执行循环体,然后判断表达式是否成立,如果成立,就继续去执行循环体内的语句,否则,结束循环)
do
{
循环体;
}while(表达式);
案例:实现1-100之和
#include <stdio.h>
//用do while实现1-100求和
int main(void)
{
int i = 0;
int sum = 0;
do
{
sum += i;
i++;
}while(i<=100);
printf("sum = %d\n",sum);
printf("i = %d\n",i);
return 0;
}
4.死循环
(1)
while(1)
{
循环体
}
(2)
for( ; 1 ; )
{
循环体
}