点赞再观看,养成好习惯!
前言:C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种 结构的组合。 例如我们可以使⽤ ,使⽤ for 、 whif 、 switch 实现分⽀结构while 、 do while 实现循环结构
目录
1.if
1.1if语句
if语句的语法如下:
if(表达式)
{
语句
}
表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏ ,在C语言中,0表示假,非零表示真。也就是说表达式的结果是0;语句不执行,表达式的结果不是0,表达式执行。如下面这个例子:
#include<stdio.h>
int main()
{
int a = 0;
if(a + 1)
printf("执行\n");
return 0;
}
运行结果:执行
1.2else
如果一个数不是大于0,就是小于等于0了。使用if语句判断完大于0,还要判断是否小于等于0,就可以用到else语句了,如下:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a > 0)
printf("大于0\n");
else
printf("小于或等于零\n");
return 0;
}
在上面这样的写法,如果执行,if和else都只能有效执行下一行语句,如果if或else要执行多条语句,需要用到大括号{},使用方法如下:
int main()
{
int a = 0;
int b = 0;
scanf("%d", &a);
if (a > 0)
{
printf("a大于0\n");
b = 1;
}
else
{
printf("a小于0\n");
b = -1;
}
return 0;
}
1.3嵌套if
if, else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断else if()。 ⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num == 0)
printf("输⼊的数字是0\n");
else if (num > 0) //这⾥的if 相当于嵌套在els语句中,形成了嵌套结构
printf("输⼊的数字是正数\n");
else
printf("输⼊的数字是负数\n");
return 0;
}
1.4else问题
让我们来看一下面这个代码
#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;
在我前面写的代码,else总是和千面的if对齐,但是,其实else 总是跟最接近的 if 匹配
也就是说,上面的代码if(a==1)没有执行语句,if(b==2)与下面的else匹配,如果要让if(a==1)与else匹配,可以修改一下代码:
#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(a==1)就和else匹配上了
2.关系操作符
C 语⾔⽤于⽐较的表达式,称为 “关系表达式”(relational expression),⾥⾯使⽤的运算符就称 为“关系运算符”(relational operator),主要有下⾯6个
>⼤于运算符
< ⼩于运算符
>= ⼤于等于运算符
<= ⼩于等于运算符
== 相等运算符
!= 不相等运算符
a == b;
a != b;
a < b;
a > b;
a <= b;
a >= b;
这里需要注意的是:
1.相等运算符==要和赋值运算符=区分
2.多个运算符不宜连用
i > j > k
这样写法可能达不到判断效果,比如下面这个代码
#include<stdio.h>
int main()
{
int i = 3;
int j = 2;
int k = 1;
if (i > j > k)
printf("成功\n");
else
printf("失败\n");
return 0;
}
为什么会失败,因为i > j答案是肯定的,返回1,1 > 1答案是否定的,如果要满足判断i大于j大于k
需要这样写:
if (i > j && j > k)
使用与&&操作符连起来
3.逻辑操作符&& , || , !
也就是我们刚刚提到的操作符
! :逻辑取反运算符(改变单个表达式的真假) ,也被我们称作不等于
&& :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假 )
|| :或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)
和逻辑操作符相关的重要的知识点有:短路
这里的短路其实是说:
或运算符一端为真,机器就不再判断了,肯定为真
与运算符一端为假,机器就不再判断了,肯定为假