C语言入门系列 - C语言控制语句
第一节 C 语言基础以及基本数据类型
第二节 C 语言运算符
第三节 C 语言控制语句
第四节 C 语言自定义函数
第五节 C 语言修饰变量的关键字
第六节 C 语言构造数据类型–数组
第七节 C 语言字符串
第八节 C 语言指针
第九节 指针与函数、指针函数、函数指针
第十节 数组与指针、二级指针&NULL&void 指针
第十一节 结构体
第十二节 链表
第十三节 共用体union,枚举enum,宏定义#define,条件编译,const与指针
C语言–图书管理项目
C语言控制语句
前言
控制语句可以分成四大结构9种语句。
顺序结构语句,条件选择结构语句,循环结构语句,跳转结构语句
一、顺序结构语句
程序默认的形式,main 函数开始,不跳过任何一句。
上一句执行完毕才会执行下一句
二、条件选择语句
if-else 组合
又分成 1.直接使用一个 if
2. 二选一 if - else
3. 多选一 条件不止一个, if() … else if() … else if() … else
1.直接使用一个 if
格式:if(表达式) 表达式:常量 变量 操作和运算符的组合
{
// 如果表达式为真的时候执行的语句块。
}
规则:判断表达式,如果表达式为真,那么执行{}里面的语句块。如果表达式为假,跳过 if 语句。
if(num<0)
{
printf(“输入数据错误”);
return 0;
}
2. 二选一 if - else
格式:
if(表达式)
{
// 表达式为真的时候执行的语句块
}else
{
// 表达式为假的时候执行的语句块。
}
规则:
先计算表达式,如果表达式为真,则执行 if{}里面的语句块,跳过 else{}里面的语句
如果表达式为假,逃过 if{}里面的语句,执行 else{}里面的语句。
if(8 > 5)
{
printf("8 > 5");
}else
{
printf("8 < 5");
}
3. 多选一 条件不止一个, if() ... else if() ... else if() ... else
格式:
if(表达式 1)
{
// 表达式 1 为真执行的语句,
}
else if(表达式 2)
{
// 表达式 1 为假,表达式 2 位真的时候执行的语句块。
}
... else if(表达式 n)
{
// 表达式 1~n-1 为假,表达式 n 为真的时候执行的语句块。
}
else {
//以上表达式全部为假的时候,执行的语句。
}
switch-case组合
格式:
switch(表达式)
{
case 常量 1:执行语句块;
case 常量 2:执行语句块;
.... default:执行语句块;
}
规则:
先计算表达式的值,然后比较表达式的值和常量1,如果两个相等,执行常量 1 后面语句块。
如果表达式的值不等于常量 1,比较表达式的值和常量 2,如果两个相等,执行常量 2 后
面的语句块。
.... 如果 case 后面所有的常量 都不等于 表达式的值,那么执行 default 后面的语句块。
注意:
case 后面必须是常量
case 如何匹配上会执行后面的语句,但是如果没有 break;那么会从当前语句依次向下执行直到遇
到 break;或者执行到最后一个 case。
如果一个 case 希望只执行一个语句块,那么后面加 break;
int a = 5,b = 6,res;
char ch;
scanf("%c",&ch);
switch(ch)
{
case ‘+’: res = a + b;break;
case ‘-’: res = a- b; break;
case ‘*’:res = a * b;break;
case ‘/’:res = a / b;break;
}
printf("%d%c%d=%d\n",a,ch,b,res);
三、循环语句结构
4种循环语句
4种,while 循环 do-while 循环 for 循环 if goto 循环,也可以说就3种循环语句,就前面3种。if goto很少见。
while 循环
格式:
while(表达式)
{
语句块;
}
规则:先计算表达式的值,如果表达式的值为真(非 0),那么执行{}语句块
如果为假,跳过{}里面的语句,继续向下执行。
使用:
while(time >= 1000)
{
time = time - 1000;
}
do-while 循环
格式:
do{
// 执行的语句
}while(表达式);
规则:
先执行 do{}里面的语句,然后判断表达式的值,如果值为真则继续执行 do{}里面的语句,如果为假,
则跳出循环,继续向下执行。
int i = 1;
do{
i++;
}while(i<1);
结果 i == 2;
for 循环
格式:
for(赋初值;条件判断;条件的因变量改变)
{
//
}
规则:先赋初值,然后判断条件,如果条件满足,执行{}里面的语句块。执行条件的因变量改变操作,然后继
续判断条件,如果条件满足,继续执行{}里面的语句块..... 如果条件不满足,跳过 for{}里面的语句。
for(num=1;num<=10;num++) // 输出1~10
{
printf(“%d ”,num);
}
四、跳转语句结构
3种跳转语句
3种,break; continue; goto;
goto很少见。
break
break: 跳出离它最近的一层循环
int i;
for(i=0;i<6;i++)
{
if(i==3)
{
break;
}
printf("%d ",i);
}
} //就打印了: 0 1 2
continue
continue: 跳出本次循环,继续下一次循环
int i;
for(i=0;i<6;i++)
{
if(i==3)
{
break;
}
printf("%d ",i);
}
} //打印了: 0 1 2 4 5
goto
goto; 无条件跳转。一般用于跳出多层循环
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
if(j==3)
{
goto START;
}
printf("%d,%d ",i,j);
}
printf("\n");
}
// 定义一个 标识符: 一般标识符大写
START:
printf("循环结束。");
打印了: 0,0 0,1 0,2 循环结束。
总结
主要是记住 break:跳出离它最近的一层循环
continue:跳出本次循环,继续下一次循环
goto; 无条件跳转。一般用于跳出多层循环
goto使用的时候,需要先定义标识符,标识符采用全部大写的形式。
标识符:在需要跳转的地方使用 goto 标识符;