🤔个人主页: 起名字真南
😙个人专栏:【数据结构初阶】 【C语言】 【C++】
目录
1 关系操作符
C语言用于比较的表达式,称为“ 关系表达式 ” 里面使用的运算符称为关系运算符,主要的关系运算符有下面六个
- ‘>’ 大于运算符
- ‘<’ 小于
- ‘<=’ 小于等于
- ‘>=’ 大于等于
- ‘==’ 相等运算符
- ‘!=’ 不相等运算符
下面是一些例子
#include<stdio.h>
int main()
{
int a, b;
a > b;
a > b;
a >= b;
a <= b;
a == b;
a != b;
return 0;
}
关系表达式通常返回0或1用来表示真假,其中1代表真0代表假。
关系表达式常用于if或while结构
注意相等运算符==和赋值运算符=非常容易混淆,另一个需要注意的就是关系运算符注意连用
2 条件操作符
条件操作符也叫做三目操作符需要有三个操作数形式如下
条件操作符的计算逻辑是:如果exp1 为假,exp1 为真,exp2 计算,计算的结果是整个表达式的结果;如果exp3 计算,计算的结果是整个表达式的结果。
int main()
{
int a = 0;
int b = 0;
scanf("%d", &a);
if (a > 3)
{
b = 5;
}
else
{
b = -5;
}
printf("%d\n", b);
//使用条件操作符
scanf("%d", &a);
b = a > 3 ? 5 : 5;
printf("%d\n", b);
return 0;
}
3 逻辑操作符 :|| ,&& ,!
逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式,主要有下⾯三个运算符
- ! 逻辑取反运算符(改变单个表达式的真假)
- || 或运算符,就是or或的意思两个表达式只要有一个为真就为真
- && 与运算符,就是and和的意思两个表达式必须全为真就为真
3.1 逻辑取反运算符
3.2 与运算符
&& 就是与运算符,也是并且的意思,&&是⼀个双⽬操作符,使⽤的⽅式是
式都是真的时候,整个表达式才为真,只要有⼀个是假,则整个表达式为假。
3.3 或运算符
|| 就是或运算符,也就是或者的意思,|| 也是⼀个双⽬操作符,使⽤的⽅式是a || b ,||两边的表达式只要有⼀个是真,整个表达式就是真,两边的表达式都为假的时候,才为假。
3.4 练习闰年判断
int main()
{
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
{
printf("闰年");
}
else
{
printf("不是闰年");
}
return 0;
}
3.5 短路
C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。
计算下列代码的值
int i = 0, a = 0, b = 2, c = 3, d = 4;
//i = a++ && ++b && d++;
i = a++||++b||d++;
printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);
4 switch语句
除了if 语句外,C语⾔还提供了switch 语句来实现分⽀结构。switch 语句是⼀种特殊形式的if…else 结构,⽤于判断条件有多个结果的情况。它把多重else if 改成更易⽤、可读性更好的形式。
- 注意switch后的条件必须是整形表达式
- 每一个case后面要加上一句break用来跳出语句
4.1 switch和if语句的对比
int main()
{
int a = 0;
scanf("%d", &a);
if (a % 3 == 0)
{
printf("余数为0");
}
else if(a % 3 == 1)
{
printf("余数为1");
}
else if (a % 3 == 2)
{
printf("余数为2");
}
//
switch (a % 3)
{
case 0:
printf("余数为0");
break;
case 1:
printf("余数为1");
break;
case 2:
printf("余数为2");
break;
}
}
注意:在使⽤break ,或者在哪⾥使⽤switch 语句的时候,我们经常可能遇到⼀种情况,⽐如配代码中的switch 后的表达式中的值⽆法匹case 语句的时候,这时候要不就不做处理,要不就得在switch 语句中加⼊default ⼦句。
关于default和case的顺序问题:
在switch语句中case⼦句和default⼦句有要求顺序吗?
default只能放在最后吗?
其实,在switch语句中case语句和default语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。不过我们通常是把default⼦句放在最后处理的。
5 while循环
while语句的形式括号里面的时判断条件如果条件为真则进行{}内的语句如果条件为假则不执行,如果条件一直为真则会造成死循环。注意循环条件。