Files
2025-09-30 16:49:43 +08:00

140 lines
5.5 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
namespace Lesson10
{
class program
{
static void Main(string[] args)
{
Console.WriteLine("算术运算符");
//算数运算符 是用于 数值类型变量计算的运算符
//他返回的结果是数值
#region 赋值运算符
// = 赋值运算符
// 关键知识点:
// 先看右侧 再看左侧 把右侧的值赋给左侧的变量
string myName = "HK";// 先看右侧 "HK" 再看左侧 myName 把 "HK" 赋值给 myName
int myAge = 18; // 先看右侧 18 再看左侧 myAge 把 18 赋值给 myAge
float myHeight = 1.75f; // 先看右侧 1.75f 再看左侧 myHeight 把 1.75f 赋值给 myHeight
#endregion
#region 算术运算符
#region +加号运算符
// 用自己计算 先算右侧结果 再赋值给左侧变量
int i = 1;
i = i + 2;//先算右侧 i + 2 = 3 再赋值给左侧 i
Console.WriteLine("i = " + i); // 输出 i = 3
//连续运算 先算右侧结果 再赋值给左侧变量
i = i + 2 + 3; //先算右侧 i + 2 + 3 = 8 再赋值给左侧 i
Console.WriteLine("i = " + i); // 输出 i = 8
//初始化时就运算 先算右侧结果 再赋值给左侧变量
int j = 1 + 2 + 3; //先算右侧 1 + 2 + 3 = 6 再赋值给左侧 j
Console.WriteLine("j = " + j); // 输出 j = 6
#endregion
#region -减号运算符
// 同加法
#endregion
#region *乘号运算符
// 乘法运算符 * 用于两个数相乘
int k = 2 * 3; //先算右侧 2 * 3 = 6 再赋值给左侧 k
Console.WriteLine("k = " + k); // 输出 k = 6
// 乘法也可以连续运算
k = k * 2 * 3; //先算右侧 k * 2 * 3 = 36 再赋值给左侧 k
Console.WriteLine("k = " + k); // 输出 k = 36
#endregion
#region /除号运算符
// 除法运算符 / 用于两个数相除
int m = 6 / 2; //先算右侧 6 / 2 = 3 再赋值给左侧 m
Console.WriteLine("m = " + m); // 输出 m = 3
// 除法也可以连续运算
m = m / 2 / 3; //先算右侧 m / 2 / 3 = 0 再赋值给左侧 m
Console.WriteLine("m = " + m); // 输出 m = 0
// 注意:除法运算如果除数为0,会抛出异常
try
{
int n = 6 / 0; //会抛出异常
}
catch (DivideByZeroException ex)
{
Console.WriteLine("除数不能为0" + ex.Message);
}
#endregion
#region %取余运算符
// 取余运算符 % 用于两个数相除后,返回余数
int o = 7 % 3; //先算右侧 7 % 3 = 1 再赋值给左侧 o
Console.WriteLine("o = " + o); // 输出 o = 1
o = o / 3;
Console.WriteLine("o = " + o); // 输出 o = 0
// 注意:取余运算如果除数为0,会抛出异常
o = o / 3;
try
{
int p = 7 % 0; //会抛出异常
}
catch (DivideByZeroException ex)
{
Console.WriteLine("除数不能为0" + ex.Message);
}
#endregion
#endregion
#region 算数运算符的 优先级
// 乘除取余运算符优先级高于加减运算符
// 先算乘除取余运算符 再算加减运算符
int a = 1 + 2 * 3 / 2 + 1;//先算右侧 2 * 3 = 6 再算 6 / 2 = 3 再算 1 + 3 + 1 = 5
Console.WriteLine(a);
//括号可以改变运算顺序
int b = (1 + 2) * 3 / 2 + 1; //先算右侧 (1 + 2) = 3 再算 3 * 3 = 9 再算 9 / 2 = 4.5 再算 4.5 + 1 = 5.5
Console.WriteLine(b);
//注意:括号内的运算优先级最高
//多组括号 可以嵌套运算 先算最内层括号
int c = (1 + (2 * 3)) / 2 + 1; //先算右侧 (2 * 3) = 6 再算 (1 + 6) = 7 再算 7 / 2 = 3.5 再算 3.5 + 1 = 4.5
Console.WriteLine(c);
#endregion
#region 算数运算符的 复合运算符号
// 复合运算符号 是对算数运算符的简化写法
// += 复合加法运算符
i += 2; //等价于 i = i + 2; 先算右侧 i + 2 = 10 再赋值给左侧 i
// -= 复合减法运算符
i -= 2; //等价于 i = i - 2; 先算右侧 i - 2 = 8 再赋值给左侧 i
// *= 复合乘法运算符
i *= 2; //等价于 i = i * 2; 先算右侧 i * 2 = 16 再赋值给左侧 i
// /= 复合除法运算符
i /= 2; //等价于 i = i / 2; 先算右侧 i / 2 = 8 再赋值给左侧 i
// %= 复合取余运算符
i %= 2;//等价于 i = i % 2; 先算右侧 i % 2 = 0 再赋值给左侧 i
#endregion
#region 算数运算符的 自增减
// 自增自减运算符 是对变量的值进行加1或减1的运算符
i = i + 1;
i += 1;
i++;
++i;
//以上四种写法是等价的
//但是也有区别
i++;//表示的意思是先使用 i 的值,然后再加1
++i;//表示的意思是先加1,然后再使用 i 的值
//自减运算符同理
#endregion
}
}
}