C语言-2.结构学习
结构
1.1顺序~
2.1选择~
3.1.1关系运算符
类型 | 类型 | 优先级 |
---|---|---|
小于< | 小于等于<= | 优先级相同(高) |
大于> | 大于等于>= | 优先级相同(高) |
等于== | 不等于!= | 优先级相同 (低) |
tips:将数值放前,可以判断该字符是否为前面已经运用的变量。
如3 = a ,若前面a已经被赋值,则会出现语法错误
3.1.2逻辑运算符/逻辑值
运算符 | 运算 | 结果 |
---|---|---|
! | 非(取反) | 0变1 1变0 |
&& | 与(and) | 两个操作数都非零,结果为真;否则结果为假。 |
|| | 或(or) | 其中任何一个操作数非零,结果为真;否则结果为0 |
0 False假 1 True真
非0即为真
3.1.3优先级
运算符 | 结构类型 | 关联性 |
() | 圆括号 | 左-右 |
[] | 方括号 | 左-右 |
-> | 指向结构体成员 | 左-右 |
++、-- | 后缀自增/减 | |
! | 逻辑非 | |
~ | 按位取反 | |
+、- | 正负 | |
(type) | 强制类型转换 | |
* | 乘法 | |
/,% | 除、模操作 | |
+、- | 加、减运算 | |
<<、>> | 移位操作 | |
<、<=、> | 比较 | |
==、!= | 相等比较 | |
& | 按位与 | |
^ | 按位异或 | |
| | 按位或 | |
&& | 逻辑与 | |
|| | 逻辑或 | |
?: | 三目运算符 | 右-左 |
= | 赋值 | |
+=、-= | 加等于、减等于 | |
*=、/= | 乘等于、除等于 | |
<<=、>>= | 左移等于、右移等于 |
正确使用括号是保证程序逻辑正确性的关键。
一般单目优先级高于双目
3.1.4关系运算符及表达式
表达式值为逻辑值——“真”或“假”
值1代表“真” ,值0代表 “假” --非0即为真
表达式值为真或假,用1或0存储
逻辑运算的真值表:
a | b | a && b | a || b | ! a |
---|---|---|---|---|
真 | 真 | 真 | 真 | 假 |
真 | 假 | 假 | 真 | 假 |
假 | 真 | 假 | 真 | 真 |
假 | 假 | 假 | 假 | 真 |
tips:如果有多个逻辑条件,需要用&&或||进行连接
禁止使用:10<=age<=18这类语句-先运算了10<=10,得出结果是0或1的逻辑值再进行判断
3.1.5条件运算符 (三目运算符) __ ? __ : __
三目运算符(x < 0) ? (y = 10) : (Z = 20); 等价于 转换为if语句
if (x < 0) {
y = 10;
} else {
z = 20;
}
条件表达式 (x < 0) ? (y = 10) : (Z = 20);
3.1.6 IF句
//语法格式:
if (表达式){
语句1
}else
语句2
//给定一个年份,判断是否是闰年
//普通年能被4整除且不能被100整除的为闰年,否则为平年
#include <stdio.h>
int main()
{
scanf_s("请输入一个整数:%d",&n)
//判断该数字能被3和5整除
if (n % 3 == 0 && n % 5 == 0){
printf("该数字能被3和5整除");
}else
printf("该数字不能被3和5整除");
}
3.1.7 switch语句
//基本语句
switch (expression) {
case value1:
// code block
break;
case value2:
// code block
break;
default:
// code block
//示例
#include <iostream>
using namespace std;
int main()
{
int month;
cout << "请输入1-12之间的整数代表月份:" << endl;
cin >> month;
switch (month)
{
case 3:
case 4:
case 5:
cout << "春季" << endl;
break; // 终止此case分支的执行
case 6:
case 7:
case 8:
cout << "夏季" << endl;
break;
case 9:
case 10:
case 11:
cout << "秋季" << endl;
break;
case 12:
case 1:
case 2:
cout << "冬季" << endl;
break;
default: // 如果上面所有的case分支都不符合,则会走到这里的default分支
cout << "输入有误,请重新输入!" << endl;
break;
}
return 0;
}
注意:
m++ > 8
-- m>8
-- m = m + 1