一.三种结构
1.基本分类
顺序结构:最简单的结构
选择结构:if、switch
循环结构:for、do while、while
2.1 if语句
(1)单if语句:
if(条件表达式)
{
执行语句;
}
(2)if-else语句:
if(条件表达式)
{
执行语句1;
}
else
{
执行语句2;
}
//if里的条件表达式为真,则运行执行语句1,else失效,不运行执行语句2;
//反之if里的条件表达式为假,则跳过执行语句1,直接执行else部分
(3)if-else-if语句:
if(条件表达式1)
{
执行的语句1;
}
else if(条件表达式2)
{
执行的语句2;
}
//可以添加多个else-if语句,相当多选题增加选项
else
{
执行的语句3;
}
//条件表达式1为真,则执行语句1,后面的else-if和else不看
//条件表达式1为假,则判断条件表达式2,为真则执行语句2,后面的忽略
//条件表达式1和2都为假,则执行语句3
2.2 switch语句
switch(整形表达式)//switch后的表达式类型只能为整型和枚举型
{
case 整型常量表达式1:
语句1;
case 整型常量表达式2:
语句2;
case 整型常量表达式3:
语句4;
default:
语句5;
}
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day
);
switch (day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default:
printf("查询错误\n");
break;
}
return 0;
}
如果switch后的整型表达式的值找不到与case标签的值相匹配,则可以添加一条default子句,
这个default子句后的语句就会执行
执行的语句后都会放一条break语句,避免发生以下情况
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day
);
switch (day)
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default:
printf("查询错误\n");
break;
}
return 0;
}
//没有break语句,就会继续执行下面case后的语句,直到遇到break语句
练习:
#include <stdio.h>
int main() {
int x = 3;
int y = 3;
switch (x % 2) {
case 1:
switch (y)
{
case 0:
printf("first");
case 1:
printf("second");
break;
default: printf("hello");
}
case 2:
printf("third");
}
return 0;
}
//打印结果为hellothird
3.1 while
while(条件表达式)
{
执行的语句;
}
//若条件表达式为真,则执行下面的语句,反之不执行
3.2 do while
do
{
循环语句;
}while(表达式);
//do while循环至少执行一次,第二次再判断while括号中表达式的真假,为真则继续执行do后的循环语句
3.3 for
for(表达式1;表达式2;表达式3)
{
循环语句;
}
//表达式1为初始化部分,用于初始循环变量
//表达式2为条件判断部分,用于判断循环什么时候终止
//表达式3为调整部分,用于循环条件的调整
//执行顺序:表达式1->表达式2->循环语句->表达式3
练习:
#include <stdio.h>
int main()
{
int i = 0;
for (i = 0; i<10; i++)
{
if (i = 5)
printf("%d ", i);
}
return 0;
}
//打印结果为死循环的5,i=5是赋值,不是判断,每次循环都给i赋值5
二.九种控制语句
分支语句(条件判断语句):if语句、switch语句
循环执行语句:do while语句、while语句、for语句
转向语句:goto语句、continue语句、return语句、break语句
博主本次重点讲break和continue语句
break语句:break语句用于跳出一个循环体或者结束一个循环
continue语句:用于跳出本次循环,Continue后面的语句不会再执行,立即进行下一次循环条件的判断
举例:
#inlcude <stdio.h>
int main()
{
for (int i = 1; i <= 10; i++)
{
if (i == 2)
continue;
printf("%d ", i);
}
}
int main()
{
for (int i = 1; i <= 10; i++)
{
if (i == 2)
break;
printf("%d ", i);
}
}