对于刚入门的同学来说,绝对不能急躁,不要说想一下子把知识学完。也不要学了一点就感觉自己要做什么什么的。之所以要说这些使用为我曾经就是这样。但是越这样越学不进去东西也做不出东西,到头来还是要学会去学习,积累然后再去应用。好了,废话不多说了,来看看本次的知识点——分支结构
- 分支结构是进行逻辑运算后,执行特定的指令。常用的逻辑运算有
大于>,小于<,等于==,小于等于<=,大于等于>=
.- 由于C语言没用布尔类型的变量,所以使用0代表假,非0为真来表示逻辑运算的结果
一个例子
#include <stdio.h>
int main()
{
int a = 3;
if(a >= 3)
{
printf("%d大于等于3\n");
}
else
{
printf("%d小于3\n");
}
return 0;
}
运行查看结果
关于分支结构
这个分支结构就是由if...else...
判断语句构成的。分支结构理解也比较简单,但是却非常重要,一个复杂的问题不可避免的需要用到判断语句。
//if...else...分支结构
if(条件语句) //先运算if中的语句,判断结果是真是假,0为假,非0即真
{
//如果判断为真,执行此代码块
}
else
{
//反之,执行此代码块
}
关于if
- if可以单独存在
if(条件语句)
{
//为真执行
}
- 多个判断
if(条件语句)
{
//满足条件执行
}
else if(条件语句)
{
//满需条件执行
}
.
. //多个条件
.
else if(条件语句)
{
//满足田间执行
}
else
{
//一个条件都不满足时执行
}
再来一个例子
#inlcude<stdio.h>
int main()
{
int a;
scanf("%d",&a);
switch(a % 2) //%对2取余运算,结果就是0或1
{
case 1: printf("输入的是一个奇数"); break;
case 0: printf("输入的是一个偶数\n"); break;
default: printf("鬼知道发生了什么\n");
}
}
当问题处理的分支情况比较多时,使用if分支的话,使用if就不太美观了,可读性也比较差。因此,使用switch开关语句。开关,就是一个供电厂,如果一个地区需要电力,那么它向供电厂发送一个信息,叫做area
,然后不同地区发送的信息也就不同,也就是area是变量
,最后供电厂接收area这个变量,通过area中存储的信息,供电厂来决定向那个地区供电。
对上面例子的解释: 首先用户输入一个数字,存在变量a中,对a取余。结果就是0或1,然后开关接收这个信号,在下面的选项中查找与收到信息一致的。就执行后面的语句序列
。
关于break: 每一个case
后面的语句序列,可以使用break
,或者不用,如果不适用的话,那么,当找到匹配的信息后,就会继续执行下面的case,不论是否匹配,知道结束。所以,break要根据需求选择是否使用。
default: 当信息与case都不匹配,那么就会执行default后面的语句序列。
分割线
好了,分支语句的主要内容已经分享完了,由于文章例子比较简单。所以,以后会在文章最后多展示一些例子
- 三角形判定
输入三个整数,分别为三角形的三边,判断是否能够构成三角形
#include <stdio.h>
int main()
{
printf("输入三个数字,用空格隔开:\n");
scanf("%d %d %d",&a,&b,&c);
//三角形判定:两边之和大于第三边
if(a+b>c && a+c>b && b+c>a)
{
printf("可以构成三角形\n");
}
else
{
printf("不可以构成三角形\n");
}
return 0;
}
三个数排序
输入三个整数,然后从小到大依次输出三个整数
#include <stdio.h>
int main()
{
int a,b,c;
int t;
scanf("%d %d %d",&a,&b,&c);
//比较任意两个数,讲较小的一个数和与他比较的那个数交换位置,最终a<b<c
//输出a,b,c
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
printf("%d %d %d\n",a,b,c);
}