C#表达式和运算符详细解析

作者:Mwyldnje2003 时间:2021-09-30 23:39:09 

类型转换

Convert.To类型()

1、表达式

将变量和字面值(在使用运算符时,他们都称作操作数)与运算符组合起来就得到了表达式,它是计算的基本构建
简单的操作包括所有的基本书序操作,如加减乘除;还有专门用于处理布尔值的逻辑运算以及赋值运算。
比如表达式:c=a+b

让用户输入他的语文和数学成绩,计算他的总成绩

using System;
namespace 表达式
{
   class Program
   {
       static void Main(string[] args)
       {
           int a = 5;
           int b = 10;
           int c = a + b;
           Console.WriteLine(c);

Console.WriteLine("请输入你的语文成绩");
           double chinese = Convert.ToDouble( Console.ReadLine());   //接收用户输入(字符串),并转换成Dobule类型
           Console.WriteLine("请输入你的数学成绩");
           double math = Convert.ToDouble(Console.ReadLine());
           Console.WriteLine("您的总成绩是{0},平均成绩是{1}", chinese+math, (math+chinese)/2);  // 字符串连接方式可以用“+”
           Console.ReadKey();

}
   }
}

1.2 运算符分类

按操作数的个数

  • 一元运算符:处理一个操作数(int a=10)

  • 二元运算符:处理两个操作数 a>b

  • 三元运算符:处理三个操作数 (?:

按运算类型:

  • 数学运算符

  • 赋值运算符

  • 关系运算符

  • 布尔原酸符

  • 位运算符 (按为取反)

  • 其他运算符(is as)

C#表达式和运算符详细解析

  • var1=var2++ :先用后加,var1等于var2,var2的值加1

  • var1=++var2:先加后用(va2=)

2、数学运算符

C#表达式和运算符详细解析

  • var2=10

  • var1=var2++ 先用后加(var1=var2=10, var2的值加一(var2=10+1))

  • var1=++var2 先加后用 (var2加一(var2=10+1),var1等于var2+1)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 数学运算符
{
   class Program
   {
       static void Main(string[] args)
       {
           int a = 5;
           int b = 3;
           int c = a / b;
           double d = a / b;

double e = 5.0;
           double f = 3.0;
           double g = e / f;
           Console.WriteLine("c的值是{0},d的值是{1},g的值是{2}", c, d,g);
           Console.ReadKey();
       }
   }
}

结果:c的值是1,d的值是1,g的值是1.66666666666667

++/–

3、赋值运算符

C#表达式和运算符详细解析

4、关系运算符

C#表达式和运算符详细解析

C#表达式和运算符详细解析

5、布尔运算符

C#表达式和运算符详细解析

注:&&/||与&/|区别:&&/||可用于对数值执行操作,实际上,他们处理的是在储存在变量中的一系列位而不是变量的值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 布尔运算符
{
   class Program
   {
       static void Main(string[] args)
       {
           //&与运算符,||或运算符,!取反操作符,^异或运算符
           int a = 10;
           int b = 15;
           Console.WriteLine((10==a++)||(16==b--));
           Console.WriteLine("a的值是{0},b的值是{1}",a,b);  //输出结果是a的值是11,b的值是15
           //或运算符||前一个操作为true时,不在执行后一个操作内容,所是上面的结果
           Console.ReadKey();            

}
   }
}

6、位运算符

位(bit):在计算机中存储所有数据都采用二进制,那么二进制的为,便是我们所有的bit
1Byte=8bit 1字节=8位
1k=1024Byte
1M=1024k
1G=1024M
1T=1024G

在大俗代码中都不适用这些运算符,但应知道这样的运算符存在。它们主要用于高度优化的代码,在这些代码中,使用其他数学操作的开销太高。因此它们通常用于驱动程序或系统代码

~ 按位取反
&与运算
|或运算
^异或
<<左移
>>右移

6.1 &按位与运算

C#表达式和运算符详细解析

C#表达式和运算符详细解析

6.2 或|按位运算

C#表达式和运算符详细解析

6.3 异或^按位运算符

C#表达式和运算符详细解析

6.4按位取反~按位预算符

C#表达式和运算符详细解析

6.5 左移<<运算符

var3=var1<<var2 var1向左移动var2位,将所得的值付给var3

C#表达式和运算符详细解析

6.6右移

var3=var1>>var2 var1向右移动var2位,将所得的值付给var3

C#表达式和运算符详细解析

左移一位,相当于乘以2;
右移一位,当当与除以2;然后去除非整数部分

7、其他运算符

7.1 字符连接运算符+

将两个字符串连接在一起组成一个新的字符串
备注:C#中&ldquo;+&rdquo;共三种用法

  • 数学算数运算符 var1=var2+var3

  • 乘以正1 var1 =+var2 (var1=var2*(+1))

  • 字符串连接 str1=&ldquo;my name is&rdquo; str2=&ldquo;darly&rdquo; str3=str1+" "+str2,则str3=&ldquo;my name is darly&rdquo; 7.2 is运算符

用于动态检查对象的运行时类型是否与给定类型兼容

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 其他运算符
{
   class Program
   {
       static void Main(string[] args)
       {
           int a = 10;
           double b = 3.14;
           string c = "it is a string";
           bool mybool = false;
           mybool = a is int;
           Console.WriteLine("a is int\t"+mybool);   // \t是跳转到下一个制表符
           mybool = b is double;
           Console.WriteLine("b is doubule\t" + mybool);
           mybool = c is string;
           Console.WriteLine("c is string\t" + mybool);
           Console.ReadKey();
       }
   }
}

7.3 三元运算符

表达式1?表达式2:表达式3 表达式1为true则结果为表达式2,否则结果为表达式3
输出语句&ldquo;I have 数量 pen&rdquo; 当数量为1时为pen,数量大于1时为pens

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 其他运算符
{
   class Program
   {
       static void Main(string[] args)
       {
           Console.WriteLine("请输入您拥有的钢笔数量");
           int qty = Convert.ToInt32(Console.ReadLine());
           Console.WriteLine("I have {0} pen{1}", qty,qty>1?"s":"");
           //Console.ReadKey();
           // 比较用户输入数据与5的关系
           Console.WriteLine("请您输入要比较的数字");
           int number1 = Convert.ToInt32(Console.ReadLine());
           string result = number1 > 5 ? "大于等于" : "小于";
           Console.WriteLine("您输入的数字{0}5",result);
           Console.ReadKey();
       }
   }
}

8、运算优先级

C#表达式和运算符详细解析

C#表达式和运算符详细解析

C#表达式和运算符详细解析

总结练习

编程实现1532855秒是几天几小时几分钟几秒


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 总结练习
{
   class Program
   {
       static void Main(string[] args)
       {
           // 方法1,利用取整再取余的方式逐级获取响应的单位值
           Console.WriteLine("请输入你要计算的秒数");
           int day = 24 * 60 * 60;
           int hour = 60 * 60;
           //int total = 1232855;
           int total = Convert.ToInt32(Console.ReadLine());
           int days = total / day;    //计算天数   利用总秒数对一天一共多少秒取整,得到天数
           int hours = (total % day) / hour; // 利用总秒数对一天一共多少秒取余数,得到不够一天的秒数,然后对一小时包含秒数整,得到小时数;
           int minutes = (total % day % hour)/60; //同样思路,利用两次取余得到不足一小时的数量,再对60秒取整得到分钟数
           int minutes2 = total % 3600 / 60;  //计算分钟的方式2,总秒数对一小时取余得到不足一小时的秒数然后取整60秒得到分钟数
           int second = total % 60; //用总数对60秒取余得到不足一分钟的秒数,就是秒

Console.WriteLine("{0}天{1}小时{2}分钟{3}秒",days,hours,minutes,second);
           Console.WriteLine(minutes2+"分钟");
           Console.ReadLine();

}
   }
}

来源:https://blog.csdn.net/Mwyldnje2003/article/details/122444196

标签:C#,表达式,运算符
0
投稿

猜你喜欢

  • SpringMVC实现注解式权限验证的实例

    2021-11-19 11:52:44
  • JavaWeb中使用JavaMail实现发送邮件功能实例详解

    2023-01-07 13:54:37
  • springmvc+shiro+maven 实现登录认证与权限授权管理

    2023-07-04 14:33:03
  • C# 重写Notification提示窗口的示例代码

    2021-12-26 19:57:59
  • 学习SpringBoot容器功能及注解原理

    2023-11-24 22:06:17
  • Android 读取资源文件实例详解

    2022-08-28 13:31:17
  • SpringBoot整合RedisTemplate实现缓存信息监控的步骤

    2023-10-14 10:17:13
  • WinForm实现的图片拖拽与缩放功能示例

    2021-06-18 09:17:26
  • 详解Java对象的强、软、弱和虚引用+ReferenceQueue

    2021-11-30 16:23:01
  • java实现简单石头剪刀布游戏

    2023-07-20 05:31:37
  • 基于Hibernate中配置文件的学习(分享)

    2022-02-11 12:03:31
  • WinForm中comboBox控件数据绑定实现方法

    2023-04-23 07:37:28
  • Javaweb会话跟踪技术Cookie和Session的具体使用

    2022-06-24 21:16:33
  • spring cloud alibaba Nacos 注册中心搭建过程详解

    2022-07-08 17:38:01
  • Java文件操作之按行读取文件和遍历目录的方法

    2023-11-24 16:58:21
  • Android自定义Drawable实现圆形和圆角

    2022-05-07 14:59:59
  • 基于springboot的RestTemplate、okhttp和HttpClient对比分析

    2021-07-02 03:14:21
  • MybatisPlus多表连接查询的问题及解决方案

    2023-11-25 22:09:06
  • 关于@Autowired注入依赖失败的问题及解决

    2023-11-29 00:50:42
  • C#实现DataTable映射成Model的方法(附源码)

    2023-03-12 06:10:56
  • asp之家 软件编程 m.aspxhome.com