
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。
——老子 《德经》
目录
导语:
🍎一、分支语句(选择结构)
🍇引入:
🍆1.1 if 语句
1.1.1 if 语句的语法结构:
1.1.2 演示代码及详讲
1.1.3报错原因探究:
🍉1.2 switch 语句
1.2.1 switch 语句结构
1.2.2演示代码及详讲
结语:
导语:
C语言是一门结构化的程序设计语言,结构又分为顺序结构、选择结构与循环结构。 在前面的文章对于分支与循环有了简单的介绍,今天我们就正式介绍一下它。✊✊✊
在学习之前,我要问各位一个问题,究竟什么是语句呢?
C语言中由一个分号 ; 隔开的就是一个语句,如果在一个程序当中有一行只有一个分号的使用,也是可行的,这样的语句叫做空语句。(为什么要介绍基本的概念呢,因为我觉得这些是我们必须要打牢的知识点。)
🍎一、分支语句(选择结构) 🍇引入:在现实的生活中,我们时常会遇到各种的选择,比如这样的一句俗语“红灯停,绿灯行,黄灯亮了等一等”。这就是很标准的分支语句,在红灯时我们要停下,绿灯时通行,黄灯时等待。
🍆1.1 if 语句 1.1.1 if 语句的语法结构://第一种
if(表达式)
语句;
//第二种
if(表达式)
语句1;
else
语句2;
//第三种:多分支的
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
1.1.2 演示代码及详讲
第一种:也是最简单一种 if 语句,相信大家都会了,这里就简单的丢个代码出来。
咻~~~
#include
int main()
{
float score=60.1;
if(score>=60)
printf("及格\n");
printf("老师捞捞,真好!\n");
return 0;
}
第二种:
这一种就属于比较经典的if 语句啦,展示!
#include
int main()
{
float score=59.9;
if(score>=60){
printf("及格\n");
printf("老师捞捞,真好!\n");
}
else{
printf("不及格\n");
printf("老师尽力了\n");
}
return 0;
}
注意:else的大括号和else本身是可以省略掉的,如果表达式的结果为true,则输出 if 块内的代码,如果为false,则执行else块内的代码。C语言中把任何非零或非空的值假定为true,把零或null假定为false。
1.1.3报错原因探究:第一种:悬空else
#include
int main()
{
int a=0;
int b=2;
if(a==1)
if(b==2)
printf("true");
else
printf("false");
return 0;
}
解释:
这里的表面上很正确,第一个if与else是一对啊,但是只要你运行一下你就会发现,你输出的没有结果,如下图所示,这是怎么回事呢,这就是else的就近,else会找到最近的if进行结合,而不是本题中的第一个if,所以当a不满足于等于1时,代码运行结束,也就不存在输出结果。
所以,我们要怎么做,才能够输出我们想要的结果呢,我们只需要将第二个if语句用大括号括起来,当作第一个if的代码块就可以了,代码如下面这个一样,各位可以去试试。
#include
int main()
{
int a=0;
int b=2;
if(a==1){
if(b==2)
printf("true");
}
else
printf("false");
return 0;
}
第二种:= 与 ==的含义搞混产生问题
#include
int main()
{
int num=1;
if(num=10000)
{
printf("哈哈,你错啦!!!");
}
return 0;
}
解释:
同志们,仔细看,咱是不是少了啥东西,眼尖的同志可能发现了,少了个等号欸,这里就需要在说一下,一个等号代表赋值,两个等号代表赋值相等,两者具有完全不同的意思。如果按照上述这样书写,if语句会被判断为真,也自然的会输出结果,所以我们写代码时,一定要仔细,仔细,仔仔细细。为了避免出现这样的错误,我们常常把赋值写在前面,变量写在后面,这是一种很好的方法,各位可以尝试一下。下面把正确的代码丢一下。
#include
int main()
{
int num=1;
if(num==10000)
{
printf("哈哈,你错啦!!!");
}
return 0;
}
🍉1.2 switch 语句
1.2.1 switch 语句结构
#include
int main()
{
switch(整形表达式)
{
case 整型常量表达式:
语句;
break;
······
//default:
// 语句;
// break;
}
return 0;
}
1.2.2演示代码及详讲
#include
int main ()
{
char grade=0;
scanf("%c",&grade);
switch(grade)
{
case 'A' :
printf("非常好!\n" );
break;
case 'B' :
printf("还不错\n" );
break;
case 'C' :
printf("你通过了\n" );
break;
case 'D' :
printf("最好再尝试一下,争取更好的成绩\n" );
break;
default :
printf("成绩不合格,继续努力吧\n" );
}
printf("您的成绩是 %c\n", grade );
return 0;
}
解释:
上面的代码可以说是很标准的switch语句的使用啦,我们要注意每个case语句后的break的使用,要不然很容易出现问题,导致连续输出多个语句,所以break的使用尤为重要。下面来一个题,也就是鹏哥讲的,这个题本小白感觉确实真的很不错,很容易出错。
#include
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{//switch允许嵌套使用
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
同志们可以先自己想想结果在去实践 *** 作,下面给出具体的内容讲解。
结语:
本篇文章就讲解到此,感谢读到此处的各位,本文如果有不当的地方,欢迎各位指正,本人一定虚心接受建议,今后我们一起努力,正如开头所说,”合抱之树,生于毫末;九层之台,起于累土;千里之行,始于足下“。✊✊✊
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)