## 一、运算符整体分类
算术、赋值、关系、逻辑、位运算、自增自减、三元运算符。
## 1. 算术运算符 `+ - * / %`
### 知识点
1. `+`:加法 / 字符串拼接;两边有string就变成拼接。
2. `/`:**整数÷整数=整数(舍去小数)**;小数运算才保留小数。
3. `%`:取余(求余数),常用于判断奇偶。
```csharp
using System;
class Test
{
static void Main()
{
int a = 7, b = 2;
Console.WriteLine(a + b); //9
Console.WriteLine(a / b); //3(int相除舍弃小数)
Console.WriteLine(a % b); //1
Console.WriteLine("123"+456);//123456
Console.ReadKey();
}
}
```
输出:
```
9
3
1
123456
```
> 口诀:整型相除去小数,%求余判奇偶,+遇文字变拼接。
## 2. 自增自减 `++ --`(必考难点:前置、后置)
### 规则
- **后置 a++ / a--:先取值运算,后自身+1/-1**
- **前置 ++a / --a:先自身+1/-1,再取值运算**
```csharp
int num = 5;
int res1 = num++; //res1=5,num变成6
int res2 = ++num; //先num=7,res2=7
```
### 例题代码
```csharp
using System;
class Test
{
static void Main()
{
int x = 3;
int y = x++ + ++x;
//x++=3,x变4;++x=5;y=3+5=8
Console.WriteLine(y);
Console.ReadKey();
}
}
```
输出:`8`
## 3. 赋值运算符 `= += -= *= /= %=`
### 知识点
`a += b` 等价 `a = a + b`,其余同理。
```csharp
int a = 10;
a += 5; //a=15
a %= 3; //15%3=0
```
## 4. 关系运算符(比较,结果全是bool:true/false)
`> < >= <= == !=`
- `==` 判断相等,`!=`不等于
> 注意:单个`=`是赋值,两个`==`是比较。
```csharp
Console.WriteLine(5>3); //True
Console.WriteLine(5==2);//False
```
## 5. 逻辑运算符(连接多个条件,结果bool)
什么是逻辑运算?
逻辑运算是基于布尔(真/假、1/0)的基本运算,用于在逻辑表达式中求值。
R语言中的逻辑运算符主要包括以下几种:
&——逻辑与(AND)
|——逻辑或(OR)
!——逻辑非(NOT)
&&——条件逻辑与
||——条件逻辑或
逻辑运算符通俗讲解(就3个:&&、||、!)
一句话:**用来判断多个条件组合成立不成立,结果只有两种:真(true)、假(false)**
## 1. && 并且(同时满足,全真才真)
口诀:**全部条件都对,结果才对;错一个就全错**
例:出门 = 带钥匙 **并且** 带手机
- 钥匙√、手机√ → 能出门(true)
- 钥匙√、手机× → 出不去(false)
- 钥匙×、手机任意 → 出不去(false)
## 2. || 或者(满足一个就真,全假才假)
口诀:**只要一个满足就成立,全都不行才不成立**
例:喝水 = 有矿泉水 **或者** 有白开水
- 有矿泉水√/白开水任意 → 能喝水(true)
- 矿泉水×、白开水× → 没水喝(false)
## 3. ! 取反(反过来,真变假、假变真)
口诀:**颠倒对错**
- !有钱 → 没钱
- !下雨 → 没下雨
true取反= false,false取反= true
# 极简总结
1. **&&:全都要满足**
2. **||:任选一个满足**
3. **!:反过来**
markdown# C# 实操示例,附带运行结果
## 1. && 与(全部为真才true)
```csharp
using System;
class Test
{
static void Main()
{
bool hasKey = true;
bool hasPhone = true;
// 钥匙+手机都带才能出门
bool canGoOut = hasKey && hasPhone;
Console.WriteLine(canGoOut); // True
hasPhone = false;
canGoOut = hasKey && hasPhone;
Console.WriteLine(canGoOut); // False
Console.ReadKey();
}
}
```
## 2. || 或(一个真就true)
```csharp
using System;
class Test
{
static void Main()
{
bool mineralWater = false;
bool plainWater = true;
// 任意一种水就能喝
bool canDrink = mineralWater || plainWater;
Console.WriteLine(canDrink); // True
mineralWater = false;
plainWater = false;
canDrink = mineralWater || plainWater;
Console.WriteLine(canDrink); // False
Console.ReadKey();
}
}
```
## 3. ! 非(取反)
```csharp
using System;
class Test
{
static void Main()
{
bool isRain = true;
bool notRain = !isRain; // 反向
Console.WriteLine(notRain); // False
bool haveMoney = false;
bool noMoney = !haveMoney;
Console.WriteLine(noMoney); // True
Console.ReadKey();
}
}
```
## 混合运算举例
```csharp
// 年龄>18 并且(有身份证 或者 有户口本)
int age = 20;
bool idCard = false;
bool hukou = true;
bool allow = age>18 && (idCard || hukou);
Console.WriteLine(allow); // True
Console.ReadKey();
```
### 运算优先级
`! > && > ||`,先非、再与、最后或。
## 6. 三元运算符 `条件 ? 表达式1 : 表达式2`
### 语法规则
条件为true →执行表达式1;false→执行表达式2。
**等价简单if else**
```csharp
using System;
class Test
{
static void Main()
{
int score = 70;
string res = score >=60 ? "及格":"不及格";
Console.WriteLine(res);
Console.ReadKey();
}
}
```
输出:`及格`
## 7. 运算符优先级(从高→低)
1. 括号`()` > 自增`++` > 乘除取余`* / %` > 加减`+ -` > 比较`><==` > `&&` > `||` > 三元`?:` > 赋值`=`
> 记:**括号永远最高,先乘除后加减,比较完再逻辑**
## 二、高频考点精简背诵
1. int/int 舍弃小数;%用来取余数、奇偶判断。
2. 后置++先用再加,前置++先加再用。
3. &&一假全假、短路;||一真全真、短路。
4. 三元:真左假右。
5. =赋值,==判断相等。