4e1548abe2
Part1
140 lines
5.5 KiB
C#
140 lines
5.5 KiB
C#
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
|
||
|
||
}
|
||
}
|
||
} |