文章目录
C语言是结构化的程序设计语言
1.顺序结构
2.选择结构
3.循环结构
什么是语句
C语言的语句分为以下5类:
表达式语句
函数调用语句
控制语句
复合语句
空语句
之后介绍控制语句:用于控制函数的执行流程,以实现程序的各种结构方式,由特定的语句定义符组成,C有9种
可分为以下三类
1. 条件判断语句,即分支语句:if 、while
2. 循环执行语句 do while、while、for
3. 转向语句: break、goto、continue、return
分支语句
if
1. 0表示假,非0表示真(-1也是真)
if(18<age<30) //age =10;
{ //18<10-->0,0<30-->1, if(1)
printf("%d ",age);
语句1;
}
if(表达式)
{
语句1; //不加大括号,只能跟一个语句
}
else(表达式) // 这里 if else 合成一条语句
{
语句2;
}
2. 语法结构(可以单分支也可以多分支):
if(表达式) //多分支
{
语句1;
}
else if(表达式)
{
语句2;
}
else (表达式)
{
语句3;
}
3. 悬空else 语句
else总是与离他最近的if 匹配;利用大括号分隔
做好代码分隔,int a = 10;(大概是便于修改) //《高质量c/c++编程》
4. if书写形式的对比
// 代码1
if(condition) //1,2的效果是一致的 函数执行到return 0 ,就结束;
return x; // 但这种写法不好,代码2是规范写法
return y;
//代码2
if(condition)
return x;
else
return y;
- debug
所以比较时, 把常量放在左边,更好
int main()
{
int num = 1;
if (m=5) //误写(m==5) 这时不会报错,会错误地执行下去
printf("A");
if ( 5=m) //误写(5==m) error:左操作目不等于左值
printf("A");
}
switch
常常应用于多分支
int main()
{
int day = 0;
scanf("%d", &day);
switch(day) //day 的值只决定了入口,没给出口
{
case 1:
printf(“星期1\n”);
case 2:
printf(“星期2\n”);
case 3:
printf(“星期3\n”);
break; // 适当加break,可以跳出;
case 4: // 没有break 一直执行,直到遇到break;
printf(“星期4\n”);
case 5:
printf(“星期5\n”);
}
return 0;
}
整型是必要的
switch(整型表达式)
{
case 整型常量表达式:
语句;
}
不加break也可能是需求;
int main()
{
int day = 0;
scanf("%d", &day);
switch(day) // day 的值只决定了入口,没给出口
{
case 1:
case 2:
case 3:
case 4:
case 5: // 保留入口标签
printf(“工作日\n”);
break;
case 6:
case 7:
printf(“休息日\n”);
break; // 最后一个break 可加可不加,但考虑到后续可能增加case
// case 8:
}
return 0;
}
default 语句
int main()
{
int day = 0;
scanf("%d", &day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf(“工作日\n”);
break;
default : // 处理额外情况
printf("输入错误"); // 没有顺序要求
break; // 其他位置的话,不要漏掉break;
}
return 0;
}
可以嵌套
// 5 3
循环语句
while
break 跳出while 循环
int main()
{
int i = 1;
while(i<=10)
{
if(5==i)
break; // 1 2 3 4
printf("%d", i);
i++;
}
return0 ;
}
continue 终止本次循环
直接跳到while ,重新判断条件
int main()
{
int i = 1;
while(i<=10)
{
if(5==i)
continue; // 1 2 3 4 _ 开始前三句的死循环
printf("%d", i);
i++; // 遇到continue,之后的代码不再执行
}
return0 ;
}