鱼式疯言:此疯言非彼疯言,而是做完题和实践敲过代码理解并总结出来通俗易懂的大白话,我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念.
本文将重点初步理解分支结构的概念的理解,以及两种分支语句的特点和场景使用。人狠话不多,我们开始吧。
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、分支(选择)结构、循环结构,C语⾔是能够实 现这三种结构的,今天要学习的分支结构就是其中之一。
鱼式疯言:
//if ( 表达式 )
//语句1
#include
int main()
{
int a = 2;
int b = (a == 2);
//判断是否成立时,成立返回1,不成立返回0.
int d = (a == 3);
printf("%d\n%d\n", b,d);
if (2 == a)
//执行语句a如果等于3就返回非0就 if 执行下面语句
//反之返回0,if不执行
{
printf("我是帅哥\n");
}
if (3)
{
printf("hehe\n");
}
if (0)
{
printf("haha\n");
}
return 0;
}
<1>. 前面的" == "意思是:“是否相等”
<2>. if 是否执行下面的语句,看 () 内是否为 0,为 0 不执行,不为 0 (不一定要为1) 执行 ;
<3>. 如例上所言 : 判断a是否等于 2,返回 1 或 0
<4>. if 后接一个语句,可不用花括号,接多个语句时,必须要用花括号接上.
<5>. if () 后面不可接 “;” 建议大家刚入门时,都 if 控制执行无论单语句还是多语句都打上 {} ,以免出错.
#include
int main()
{
if (2==3)
printf("haha\n");
printf("hehe\n");
printf("dede\n");
return 0;
}
#include
int main()
{
if (0);
//等效于——>
//if(0)
//;
//if直接控制空语句(空语句)
printf("haha\n");
return 0;
}
鱼式疯言:
如果是赋值是常量放右,变量放左,否则会报错,建议大家在判断部分把常量放在左,变量放右;所以这样可以避免双等号漏写成单等号,导致判断变成赋值,
当表达式的值不为 0 的时候执行if控制的语句,当表达为 0 呢?
那我们就不能执行其他语句了么?
这时 else 就控制的语句就派上用场啦,当 if 为 0 就可以执行 else 控制的语句.
下面上代码:
#include
int main()
{
int a = 3;
if (2 == a)
{
printf("haha\n");
}
else
{
printf("hehe\n");
}
return 0;
}
鱼式疯言:
注意这里我经常犯的错误是 else + (判断)
#include
int main()
{
int a = 0;
scanf("%d",&a);
if (a > 0)
{
printf("正数\n");
}
//先确定首if的条件a > 0;
else
//反之:a<=0再选
{
//先判断 a==0
if (a==0)
{
printf("零\n");
}
//最后 a < 0。
else
{
printf("负数\n");
}
}
return 0;
}
#include
int main()
{
int a = 0;
while (scanf("%d", &a) != EOF)
{ //方向一:a > 0;
if (a > 0)
{
printf("正数\n");
}
else if (a == 0)
//方向二: a==0
{
printf("零\n");
}
// 方向三:a< 0。
else
{
printf("负数\n");
}
}
return 0;
}
鱼式疯言:
本质上友友们可以这么想:条件之外再分出两个条件---->就等效于三个同等的条件
//switch (expression)
//{
// case value1: statement
//case value2: statement
//default: statement
//}
#include
int main()
{
int n = 0;
while (scanf("%d",&n)!=EOF)
{
switch (n)
//n必须是整数
{
case(1):
printf("周一\n");
break;
//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;
default:
printf("输入错误\n");
break;
}
}
return 0;
}
#include
int main()
{
int n = 0;
while (scanf("%d",&n)!=EOF)
{
switch (n)
//n必须是整数
{
case(1):
printf("周一\n");
break;
//break是停止的意是思
case(2):
printf("周二\n");
case(3):
printf("周三\n");
case(4):
printf("周四\n");
break;
case(5):
printf("周五\n");
case(6):
printf("周六\n");
case(7):
printf("周日\n");
break;
default:
printf("输入错误\n");
break;
}
}
return 0;
}
作⽤是⽤于永久的终⽌,只要该行执行了break就终止跳出选择,直接结束.
鱼式疯言:
如果每一情况都是相似的,最好一句后面都加上break,包括dafault后面也如此
#include
int main()
{
int n = 0;
while (scanf("%d",&n)!=EOF)
{
switch (n)
//n必须是整数
{
case(1):
case(2):
case(3):
case(4):
case(5):
printf("工作日\n");
break;
case(6):
case(7):
printf("休息日\n");
break;
default:
printf("输入错误\n");
break;
}
}
return 0;
}
在上述范围之外,default就会被执行
鱼式疯言 :
default 不一定要放在最后,可放在任意位置.只是我们习惯
大家都发现了吧,是不是上面的判断部分是不是都是整数呢?
没错,就是这样的,case(i),这个i必须是整数****常量
如图
鱼式疯言:
其实我们用字符也是没问题的,但建议大家少用
这时就有小伙伴问了,
字符又不是数字,怎么能用在判断部分呢,这不是和你上面说的相互矛盾吗?
没错,你说的对,但我说的也没错
其实啊!!!
字符啊,本身在计算机内存储的是以二进制整数存储的,所以也就相当于数字。
不信啊,那你往下看–>
#include
int main()
{
char n = 0;
while (scanf("%c",&n)!=EOF)
{
switch (n)
//n必须是整数
{
case('a'):
case('b'):
case('c'):
case('d'):
case('e'):
printf("工作日\n");
break;
case('f'):
case('g'):
printf("休息日\n");
break;
}
}
return 0;
}
但是这是有缺陷的 > 不能用 default
一旦用了就会出现以下错误:
本文主要讲解分支结构的两种类型: if 和 switch
if 时要注意 {} 和 : 的 使用以及 条件之外 else 和 if 嵌套的理解使用
switch 的 break 和 default 的作用以及判断时要用整数的限制.
创作不易,最后希望友友们看到这篇博文,觉得还不错的咱可支持三关下,不妥当的咱评论区指正,希望我的文章能给各位家人们带来哪怕一点点的收获就是小编创作的最大动力