Files
Csharp/C#入门/Lesson10_算数运算符/Program.cs
T

140 lines
5.5 KiB
C#
Raw Normal View History

2025-09-30 16:46:01 +08:00
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
}
}
}