13.算术运算符

13.运算符-算术运算符


13.1 知识点

赋值符号 (=)

先看右侧,再看左侧,将右侧的值赋值给左侧的变量。

string myName = "林文韬";
int myAge = 18;
float myHeight = 177.5f;

算术运算符

加法 (+)

用自己计算,先算右侧结果,再赋值给左侧变量。

int i = 1;
i = i + 2;
Console.WriteLine(i); // 3

i = 1 + 3 + 89 + i + i;
Console.WriteLine(i); // 99

i = 1 + 2 + 1;
Console.WriteLine(i); // 4

int i2 = 1 + 2 + 4 + i;
Console.WriteLine(i2); // 11

减法 (-)

用自己计算,先算右侧结果,再赋值给左侧变量。

int j = 1;
j = j - 1;
Console.WriteLine(j); // 0

j = 1 - 2 - 3;
Console.WriteLine(j);
j = 1 - j;
Console.WriteLine(j); // 5

int j2 = 1 - j - 0;
Console.WriteLine(j2); // -4

乘法 (*)

用自己计算,先算右侧结果,再赋值给左侧变量。

int c = 1;
c = c * 10;
Console.WriteLine(c); // 10

c = 1 * 2 * 3;
Console.WriteLine(c); // 6
c = 2 * c * 2;
Console.WriteLine(c); // 24

int c2 = c * 2;
Console.WriteLine(c2); // 48

除法 (/)

用自己计算,先算右侧结果,再赋值给左侧变量。

int chu = 1;
chu = 10 / chu;
Console.WriteLine(chu); // 10

chu = 1 / 2;
Console.WriteLine(chu); // 0

float f = 1 / 2f;
Console.WriteLine(f); // 0.5

取余 (%)

用自己计算,先算右侧结果,再赋值给左侧变量。

int y = 4;

y = y % 3;
Console.WriteLine(y); // 1

y = 4 % 3 % 2;
Console.WriteLine(y); // 1

算术运算符的优先级

优先级是指在混合运算时的运算顺序,乘除取余优先级高于加减。

int a = 1 + 2 * 3 / 2 + 1 + 2 * 3;
Console.WriteLine(a); // 11

a = 1 + 4 % 2 * 3 / 2 + 1;
Console.WriteLine(a); // 2

a = 1 + 4 % (2 * 3 / 2) + 1;
Console.WriteLine(a); // 3

a = 1 + (4 % (2 * (3 / 2))) + 1;
Console.WriteLine(a); // 2

复合运算符

固定写法:运算符=

int i3 = 1;

i3 += 2;
Console.WriteLine(i3); // 3

i3 = 2;
i3 += 2;
i3 -= 2;
i3 /= 2;
i3 *= 2;
i3 %= 2;
Console.WriteLine(i3); // 0

int i4 = 10;
i4 += 20 * 2 / 10;
Console.WriteLine(i4); // 14

注意:复合运算符只能进行一种运算,不能混合运算。

自增减运算符

int a2 = 1;

a2++;
Console.WriteLine(a2); // 2

++a2;
Console.WriteLine(a2); // 3

Console.WriteLine(a2++); // 1
Console.WriteLine(++a2); // 3

a2--;
--a2;

Console.WriteLine(a2--); // 1
Console.WriteLine(--a2); // -1

13.2 知识点代码

using System;
using System.ComponentModel.DataAnnotations;
using System.Reflection;

namespace Lesson10_算术运算符
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("算术运算符");

            //算术运算符 是用于 数值类型变量计算的运算符
            //它的返回结果是数值

            #region 知识点一 赋值符号
            // =
            // 关键知识点 : 
            // 先看右侧 再看左侧 把右侧的值赋值给左侧的变量

            string myName = "林文韬";
            int myAge = 18;
            float myHeight = 177.5f;

            #endregion

            #region 知识点二 算术运算符

            #region 加 +

            // 用自己计算 先算右侧结果 再赋值给左侧变量
            int i = 1;
            i = i + 2;            
            Console.WriteLine(i);// 3

            // 连续运算 先算右侧结果 再赋值给左侧变量
            i = 1 + 3 + 89 + i + i;
            Console.WriteLine(i);// 99
            
            i = 1 + 2 + 1;
            Console.WriteLine(i);//4

            // 初始化时就运算 即声明的时候就赋值 先算右侧结果 再赋值给左侧变量
            int i2 = 1 + 2 + 4 + i;
            Console.WriteLine(i2);//11

            #endregion

            #region 减 -

            // 用自己计算 先算右侧结果 再赋值给左侧变量
            int j = 1;
            j = j - 1;
            Console.WriteLine(j);//0

            // 连续运算 先算右侧结果 再赋值给左侧变量
            j = 1 - 2 - 3;
            Console.WriteLine(j);
            j = 1 - j;//-4
            Console.WriteLine(j);//5

            // 初始化时就运算  先算右侧结果 再赋值给左侧变量
            int j2 = 1 - j - 0;
            Console.WriteLine(j2);//-4
            #endregion

            #region 乘 *

            // 用自己计算 先算右侧结果 再赋值给左侧变量
            int c = 1;
            c = c * 10;
            Console.WriteLine(c);//10

            // 连续运算 先算右侧结果 再赋值给左侧变量
            c = 1 * 2 * 3;
            Console.WriteLine(c);//6
            c = 2 * c * 2;
            Console.WriteLine(c);//24

            // 初始化时就运算  先算右侧结果 再赋值给左侧变量
            int c2 = c * 2;
            Console.WriteLine(c2);//48

            #endregion

            #region 除 / 

            // 用自己计算 先算右侧结果 再赋值给左侧变量
            int chu = 1;
            chu = 10 / chu;
            Console.WriteLine(chu);//10

            // 连续运算 先算右侧结果 再赋值给左侧变量


            // 初始化时就运算  先算右侧结果 再赋值给左侧变量


            //默认的整数 是int 如果用来做除法运算 要注意 会丢失小数点后的小数
            chu = 1;
            chu = 1 / 2;
            Console.WriteLine(chu);//0

            //如果你想用浮点数来存储 一定是 在运算时要有浮点数的特征
            float f = 1 / 2f;
            Console.WriteLine(f);//0.5

            #endregion

            #region 取余 %

            // 用自己计算 先算右侧结果 再赋值给左侧变量
            int y = 4;

            // 4 / 3 得到余数 1
            y = y % 3;
            Console.WriteLine(y);//1

            // 连续运算 先算右侧结果 再赋值给左侧变量
            y = 4 % 3 % 2;
            Console.WriteLine(y);//1

            // 初始化时就运算  先算右侧结果 再赋值给左侧变量

            #endregion

            #endregion

            #region 知识点三 算术运算符的 优先级

            //优先级 是指 在混合运算时的运算顺序

            //乘除取余 优先级高于 加减 先算乘除取余 后算加减
            // 1 + 3 + 1 + 6
            int a = 1 + 2 * 3 / 2 + 1 + 2 * 3;
            Console.WriteLine(a);//11

            a = 1 + 4 % 2 * 3 / 2 + 1;
            Console.WriteLine(a);//2

            //括号可以改变优先级 优先计算括号内内容
            a = 1 + 4 % (2 * 3 / 2) + 1;
            Console.WriteLine(a);//3

            //多组括号 先算最里层括号 依次往外算
            a = 1 + (4 % (2 * (3 / 2))) + 1;
            Console.WriteLine(a);//2

            #endregion

            #region 知识点四 算术运算符的 复合运算符

            // 固定写法 运算符=
            // += -= *= /= %=
            //复合运算符 是用于 自己=自己进行运算


            int i3 = 1;
            i3 = i3 + 2;
            Console.WriteLine(i3);//3

            i3 = 1;
            i3 += 2;//i3 = i3 + 2;
            Console.WriteLine(i3);//3


            i3 = 2;
            i3 += 2;//4
            i3 -= 2;//2
            i3 /= 2;//1
            i3 *= 2;//2
            i3 %= 2;//0
            Console.WriteLine(i3);//0

            int i4 = 10;
            // i4 += 4
            i4 += 20 * 2 / 10;
            Console.WriteLine(i4);//14

            //注意:复合运算符 只能进行一种运算 不能混合运算
            //i4 */-= 2;

            #endregion

            #region 知识点五 算术运算符的 自增减

            int a2 = 1;
            a2 = a2 + 1;
            
            a2 = 1;
            a2 += 1;

            //自增运算符  让自己+1 
            a2 = 1;
            a2++;//先用再加
            Console.WriteLine(a2);//2
            ++a2;//先加再用
            Console.WriteLine(a2);//3

            a2 = 1;
            Console.WriteLine(a2++ );//先用再加 //1
            //2
            Console.WriteLine(++a2);//先加再用 //3

            //自减运算符 让自己-1
            a2 = 1;
            a2--;//先用再减
            --a2;//先减再用

            a2 = 1;
            Console.WriteLine(a2--);//先用再减 //1
            //0
            Console.WriteLine(--a2);//先减再用 //-1

            #endregion
        }
    }
}

13.3 练习题

定义一个变量存储你的年龄,十年后你的年龄是多少?请输出到控制台

int myAge = 18;
myAge = myAge + 10;
Console.WriteLine("十年后我的年龄是" + myAge); // 十年后我的年龄是28

计算一个半径为5的圆的面积和周长

float r = 5;
float PI = 3.1415926f;

float mianJi = PI * r * r;
Console.WriteLine("圆的面积是" + mianJi); // 圆的面积是78.5

float zhouChang = 2 * PI * r;
Console.WriteLine("圆的周长是" + zhouChang); // 圆的周长是31.400002

Console.WriteLine("圆的面积是" + 3.14f * 5 * 5); // 圆的面积是78.5
Console.WriteLine("圆的周长是" + 2 * 3.14f * 5); // 圆的周长是31.400002

计算任意三门成绩的总分、平均分打印到控制台。三门成绩均为整数类型(C# Unity Math)

int cSharp = 81;
int unity = 70;
int math = 90;

int sum = cSharp + unity + math;
float avg = sum / 3f;

Console.WriteLine("总分为" + sum); // 总分为241
Console.WriteLine("平均分" + avg); // 平均分80.333336

商店T恤的价格为285元/件,裤子的价格为720元/条,小李在该店卖了2件T恤和3条裤子,请计算小李该付多少钱?打3.8折后呢?

int trousersPrice = 720;
int tShirtPrice = 285;

int sum2 = tShirtPrice * 2 + trousersPrice * 3;
Console.WriteLine("总价:" + sum2); // 总价:2730

float sum3 = sum2 * 0.38f;
Console.WriteLine("打3.8折后:" + sum3); // 打3.8折后:1037.4

请说明number1和number2和number3的结果

int a = 10, b = 20;

int number1 = ++a + b;
Console.WriteLine(number1); // 31

a = 10;
b = 20;
int number2 = a + b++;
Console.WriteLine(number2); // 30

a = 10;
b = 20;
int number3 = a++ + ++b + a++;
Console.WriteLine(number3); // 42
Console.WriteLine(a); // 12

有两个数a=99,b=87,请写出两种方法交换他们的值,让a = 87,b=99

int a2 = 99;
int b2 = 87;

int temp = a2;
a2 = b2;
b2 = temp;

// 或者
// int temp = a2;
// a2 = b2;
// b2 = temp;
Console.WriteLine("a=" + a2 + ", b=" + b2);

请把987652秒通过代码转为n天n小时n分钟n秒显示在控制台中

int seconds = 987652;
int oneDayS = 60 * 60 * 24;
int oneHourS = 60 * 60;
int oneMinS = 60;

int day = seconds / oneDayS;
int hour = seconds % oneDayS / oneHourS;
int min = seconds % oneHourS / oneMinS;
int s = seconds % oneMinS;

Console.WriteLine("987652秒对应的时间是:" + day + "天" + hour + "小时" + min + "分钟" + s + "秒");
// 987652秒对应的时间是:11天10小时20分钟52秒

13.4 练习题代码

using System;

namespace Lesson10_练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("算术运算符练习题");
            #region 练习题一

            //定义一个变量存储你的年龄,十年后你的年龄是多少?请输出到控制台
            int myAge = 18;
            myAge = myAge + 10;
            //myAge += 10;
            Console.WriteLine("十年后我的年龄是" + myAge);//十年后我的年龄是28

            #endregion

            Console.WriteLine("**************");
            #region 练习题二

            //计算一个半径为5的圆的面积和周长
            //面积公式:πr²
            //周长公式:2πr

            float r = 5;
            float PI = 3.1415926f;

            float mianJi = PI * r * r;
            Console.WriteLine("圆的面积是" + mianJi);//圆的面积是78.5
            float zhouChang = 2 * PI * r;
            Console.WriteLine("圆的周长是" + zhouChang);//圆的周长是31.400002

            Console.WriteLine("圆的面积是" + 3.14f * 5 * 5); //圆的面积是78.5
            Console.WriteLine("圆的周长是" + 2 * 3.14f * 5);//圆的周长是31.400002

            #endregion
            Console.WriteLine("**************");
            #region 练习题三
            //计算任意三门成绩的总分、平均分打印到控制台。
            //三门成绩均为整数类型(C#  Unity  Math)

            int cSharp = 81;
            int unity = 70;
            int math = 90;
            //总分
            int sum = cSharp + unity + math;
            //平均分
            float avg = sum / 3f;
            Console.WriteLine("总分为" + sum);//总分为241
            Console.WriteLine("平均分" + avg);//平均分80.333336

            #endregion

            Console.WriteLine("**************");
            #region 练习题四
            //商店T恤的价格为285元 / 件,裤子的价格为720元 / 条,
            //小李在该店卖了2件T恤和3条裤子,请计算小李该付多少钱?打3.8折后呢?

            int trousersPrice = 720;
            int tShirtPrice = 285;

            int sum2 = tShirtPrice * 2 + trousersPrice * 3;
            Console.WriteLine("总价:" + sum2);//总价:2730
            Console.WriteLine("总价:" + (285 * 2 + 720 * 3));//总价:2730
            float sum3 = sum2 * 0.38f;
            Console.WriteLine("打3.8折后:" + sum3);//打3.8折后:1037.4
            Console.WriteLine("总价:" + (285 * 2 + 720 * 3) * 0.38f);//总价:1037.4

            #endregion

            Console.WriteLine("**************");
            #region 练习题五
            //int a = 10, b = 20;
            //int number1 = ++a + b;
            //a = 10;
            //b = 20;
            //int number2 = a + b++;
            //a = 10;
            //b = 20;
            //int number3 = a++ + ++b + a++;

            //请说明 number1和number2和number3的结果

            int a = 10, b = 20;
            // 11 + 20
            int number1 = ++a + b;
            Console.WriteLine(number1);//31

            a = 10;
            b = 20;
            //10 + 20
            int number2 = a + b++;
            Console.WriteLine(number2);//30

            a = 10;
            b = 20;
            //10 + 21 + 11
            int number3 = a++ + ++b + a++;
            Console.WriteLine(number3);//42
            Console.WriteLine(a);//12



            #endregion

            #region 练习题六
            //有两个数a = 99,b = 87,请写出两种方法交换他们的值,让a = 87,b = 99

            int a2 = 99;
            int b2 = 87;
            //中间商 不赚差价
            //a2 = b2;
            //b2 = a2;

            int temp = a2; //temp = 99;
            a2 = b2; // a2 = 87;
            b2 = temp;//b2 = 99;

            //算术运算符 加减法
            a2 = 99;
            b2 = 87;
            a2 = a2 + b2;// a2 = 99 + 87;
            b2 = a2 - b2;// b2 = 99 + 87 - 87;  b2 = 99;
            a2 = a2 - b2;// a2 = 99 + 87 - 99;  a2 = 87;

            #endregion

            #region 练习题七
            //请把987652秒通过代码转为n天n小时n分钟n秒显示在控制台中

            //一天对应秒数 = 60 * 60 * 24
            int oneDayS = 60 * 60 * 24;
            //一小时对应秒数 = 60 * 60
            int oneHourS = 60 * 60;
            //一分钟对应的秒数 = 60
            int oneMinS = 60;

            // 算一天 用总的秒数 / 一天有多少秒 
            int day = 987652 / oneDayS;
            // 算小时 用不足一天的秒 / 一小时对应的秒数
            // 987652 % oneDays 余数结果 就是剩下的不足一天的秒数
            int hour = 987652 % oneDayS / oneHourS;
            // 算分钟 用不足一小时的秒 / 一分钟对应的秒数
            // 987652 % oneHourS 余数结果 就是剩下的不足一小时的秒数
            int min = 987652 % oneHourS / oneMinS;
            // 得到 秒数
            int s = 987652 % oneMinS;

            Console.WriteLine("987652秒对应的时间是:" + day + "天" + hour + "小时" + min + "分钟" + s + "秒");
            //987652秒对应的时间是:11天10小时20分钟52秒

            #endregion
        }
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏