前言
目录
一、什么是语句?
c语言语句可分为以下五类
1.表达式语句
2.函数调用语句
3.控制语句
4.复合语句
5.空语句
本站着重介绍控制语句。
控制语句用于控制程序的流程,以实现程序的各种结构方式,c语言是一门结构化的程序设计语言,我们c语言有三种结构,顺序结构,选择结构,循环结构。他们由特定的语句定义符组成,c语言有九种控制语句。
可分为:
1.条件判断语句(分支语句):if语句,switch语句
2.循环执行语句:do while语句,while语句,for语句
3.转向语句:break语句,goto语句,continue语句,return语句
二、分支语句(选择语句)
1. if语句
(1)if语句的三种形式
if(表达式)
语句1; //单分支
if(表达式)
语句1;
else
语句2; //双分支
if(表达式1)
语句1;
else if(表示式2)
语句2;
else
语句3; //多分支
上面这是if语句常见的三种形式。
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);//20
//单分支举例
if (age >= 18)
printf("成年\n");
//双分支举例
if (age >= 18)
printf("成年\n");
else
printf("未成年\n");
//多分支举例
if (age < 16)
printf("少年\n");
else if (age >= 16 && age < 30)
printf("青年\n");
else if (age >= 30 && age < 40)
printf("中年\n");
else if (age >= 40 && age < 56)
printf("壮年\n");
else if (age >= 56 && age < 80)
printf("老年\n");
else
printf("老寿星\n");
return 0;
}
如上所示代码中,包含了if的三种形式。
if语句如果需要包含多条代码,则需要加上代码块,
#include<stdio.h>
int main()
{
int age = 20;
if (age >= 18)
{
printf("成年\n");
printf("谈恋爱\n");
}
return 0;
}
(2)几个经典的错误标准的零分
①下面这段代码未加大括号,if语句无法控制第二个printf,虽然从结果方面来说是对的,但是你们知道我想表达什么意思就可以了。
#include<stdio.h>
int main()
{
int age = 20;
if (age >= 18)
printf("成年\n");
printf("谈恋爱\n");
return 0;
}
②下面这段代码输出的结果什么呢?
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
答案是haha,这就是未加大括号导致的悲剧了。上面这段代码可以加上大括号,就会等价于下面这段代码,这样你就能看得更加清晰了。不会出现错误来了,这也给我们提示了一点,写代码时候一定要注意缩进,要不然自己写的自己都不知道在说啥。
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
}
else
{
printf("haha\n");
}
return 0;
}
③if括号语句中==写成了=
int main()
{
int num = 5;
if (num=10)
{
printf("hehe\n");
}
return 0;
}
(3)一个重要的结论
else是与距离它最近的if匹配的
2、switch
(1)switch语句基本用法
switch语句我们直接看一段代码来进行讲解
int main()
{
int day = 0;
scanf("%d", &day);
int n = 2;
switch (day)
{
default:
printf("选择错误\n");
break;
case 1:
printf("星期1\n");
break;
case 2:
printf("星期2\n");
break;
case 3:
printf("星期3\n");
break;
case 4:
printf("星期4\n");
break;
case 5:
printf("星期5\n");
break;
case 6:
printf("星期6\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0;
}
我们switch后面的括号会读取一个整形表达式的值,然后自动跳转到对应的case语句后面,并执行case语句的结果,值得注意的是,要注意break这条语句,这个语句的作用是跳出本层switch语句。因为switch是可以嵌套的,或者跟循环语句嵌套使用。default的意思是,除过case上的所有值之外,其余一切switch所接收的值,都将跳转到default中。
(2)几个经典的错误,标准的零分
①需要添加break时未加break,如果未加break,那么执行完本次case以后,不会直接结束switch,而是继续往下滑,进入下面的case语句中。
②switch语句和case语句中只能是整型表达式,否则报错。比如浮点类型等,但值得注意的是,字符类型和整型类型从某种程度上,也就是ASCII表,来说可以对应起来,也就是之前所说的,表现形式不同而已。
总结
本小节主要讲了if与switch语句中基本的用法,难度不大。但细节很多。
本站未完,欲知后事,请看下节
版权归原作者 青色_忘川 所有, 如有侵权,请联系我们删除。