目录
创新互联公司专注于罗定网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供罗定营销型网站建设,罗定网站制作、罗定网页设计、罗定网站官网定制、重庆小程序开发服务,打造罗定网络公司原创品牌,更为您提供罗定网站排名全网营销落地服务。前言
一、if 语句
1.语法结构
2.悬空else
二、switch语句
1.语句结构
2.在switch语句中的 break
3. default子句
总结
在前面章节的学习中,我们只是对C语言有了一个大致的了解,让我们可以看懂一些简单的程序,从今天开始,我们就要深入的学习C语言的内容。
C 语句可分为以下五类: 1. 表达式语句 2. 函数调用语句 3. 控制语句 4. 复合语句 5. 空语句 而控制语句又分为 条件语句,循环语句和转向语句,我们今天要学习的是控制语句中的 条件语句。//半选择结构
if () {
表达式;
}
//if else 结构
if () {
表达式1;
}
else {
表达式2;
}
//多选择结构
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
if 语句的结构,如果if后面的表达式为真时,执行后边的语句,如果表达式为0即为假,当不为0时即为真,如表达式为-1时为真。
如果执行单条语句时,我们我们可以不带{ },但是我们要输入多条语句时,必须带上大括号{ }。
#includeint main()
{
if(表达式)
{
语句列表1;
}
else
{
语句列表2;
}
return 0
为了更好地掌握if语句,我们可以过下边的几段代码来分析。
代码1中,我们输入age,通过if判断,当age<18时,即说明判断为真,即输出未成年,当我们age>=18时,判断为假,不输出。
#include//代码1
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
}
代码2中,输出age,当age<18时输出未成年,else在这里相当于age>=18,即输出成年。
//代码2
#includeint main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
}
代码3中 ,这是多分支的条件语句,通过多组else if语句来控制输出,else if和if一样,后边的判断语句为真时,大括号内的语句成立,否则不成立。
//代码3
#includeint main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("少年\n");
}
else if(age>=18 && age<30)
{
printf("青年\n");
}
else if(age>=30 && age<50)
{
printf("中年\n");
}
else if(age>=50 && age<80)
{
printf("老年\n");
}
else
{
printf("老寿星\n");
}
}
我们先来看这样一段代码。
#includeint main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
你是否以为这个程序最终输出 haha ,那就大错特错了,我们可以看到这里有两个if表达式,却只有一个else 表达式,这个时候我们就要考虑到if 和 else 的配对问题,我们C语言的语法中,else会和离它最近的一个if配对,故当第一个if不成立后,不会进行第二个if的判断,故程序的结果应该是没有输出。
我们可以调整一下程序的风格和大括号的使用,这样我们就可以更清楚的理解了。
//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
#includeint main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}
switch 语句也是一种分支语句。 常常用于多分支的情况。 比如: 输入 1 ,输出星期一 输入 2 ,输出星期二 输入 3 ,输出星期三 输入 4 ,输出星期四 输入 5 ,输出星期五 输入 6 ,输出星期六 输入 7 ,输出星期日 那我没写成 if...else if ...else if 的形式太复杂,那我们就得有不一样的语法形式。 这就是 switch 语句。1.语句结构
switch ( 整型表达式 ) {case 整形常量表达式:
语句 ; }
这是我们的一段输出周几的程序,我们来看看效果。
#includeint main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
case 3:
printf("星期三\n");
case 4:
printf("星期四\n");
case 5:
printf("星期五\n");
case 6:
printf("星期六\n");
case 7:
printf("星期天\n");
}
return 0;
}
但是输出结果为什么是星期三,星期四,星期五,星期六,星期天呢,哪里出了问题呢?
在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。
#includeint 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;
}
return 0;
}
这样的话,我们就可以正确的输出了。
如果表达的值与所有的 case 标签的值都不匹配怎么办? 其实也没什么,结构就是所有的语句都被跳过而已。 程序并不会终止,也不会报错,因为这种情况在 C 中并不认为是个错误。 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢? 你可以在语句列表中增加一条default子句,把下面的标签 default: 写在任何一个 case 标签可以出现的位置。 当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。 所以,每个switch语句中只能出现一条default子句。 但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。
#includeint main()
{
int day = 0;
scanf_s("%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;
default:
printf("休息日\n");
break;
}
return 0;
}
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。
通过今天的学习,我们要熟练的掌握几种条件判断语句的用法,并明白背后的道理。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧