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

目录
  • 类型转换
    • 1、表达式
      • 1.2 运算符分类
    • 2、数学运算符
    • 3、赋值运算符
    • 4、关系运算符
    • 5、布尔运算符
    • 6、位运算符
      • 6.1 &按位与运算
      • 6.2 或|按位运算
      • 6.3 异或^按位运算符
      • 6.4按位取反~按位预算符
      • 6.5 左移<<运算符
      • 6.6右移
    • 7、其他运算符
      • 7.1 字符连接运算符+
      • 7.3 三元运算符
    • 8、运算优先级
  • 总结练习

类型转换

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)

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

2、数学运算符

  • 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、赋值运算符

4、关系运算符

5、布尔运算符

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

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 &按位与运算

6.2 或|按位运算

6.3 异或^按位运算符

6.4按位取反~按位预算符

6.5 左移<<运算符

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

6.6右移

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

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

7、其他运算符

7.1 字符连接运算符+

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

  • 数学算数运算符 var1=var2+var3
  • 乘以正1 var1 =+var2 (var1=var2*(+1))
  • 字符串连接 str1=“my name is” str2=“darly” str3=str1+" "+str2,则str3=“my name is darly” 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
输出语句“I have 数量 pen” 当数量为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、运算优先级

总结练习

编程实现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();

        }
    }
}

到此这篇关于C#表达式和运算符详细解析的文章就介绍到这了,更多相关C#表达式和运算符内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#正则表达式大全

    目录 一.简介 字符转义 字符类 分组构造 限定符 二.C#常用正则表达式符号大全 三.代码 一.简介 正则表达式是一种匹配输入文本的模式,.Net 框架提供了允许这种匹配的正则表达式引擎,模式由一个或多个字符.运算符和结构组成.下面列出了用于定义正则表达式的各种类别的常用字符.运算符和结构. 字符转义 正则表达式中的反斜杠字符(\)指示其后跟的字符是特殊字符,或应按原义解释该字符. 转义字符 描述 模式 匹配 \a 与报警 (bell) 符 \u0007 匹配. \a "Warning!&qu

  • C# DataTable中Compute方法用法集锦(数值/字符串/运算符/表等操作)

    本文实例讲述了C# DataTable中Compute方法用法.分享给大家供大家参考,具体如下: Compute函数的参数就两个:Expression,和Filter. Expresstion是计算表达式,关于Expression的详细内容请看这里: http://msdn2.microsoft.com/zh-cn/library/system.data.datacolumn.expression(VS.80).aspx 而Filter则是条件过滤器,类似sql的Where条件. DataTab

  • C#编程自学之运算符和表达式

    我们了解完C#数据类型与变量之后,还会遇到变量之间的运算,例如计算两个数的和等等运算.那么,C#中都有那些常用的运算符呢?那么,往下看吧! 一.算数运算符 1.基本算数运算符 说到算数运算符,我们首先就应该可以想到我们数学中一些常用的运算符例如:加 减 乘 除 求余! 那么在C# 这些运算符都是如何表示的呢? 知道C#基本运算符的表示之后我们该如何去使用呢?那么我们来看段代码来看下什么是表达式. int a = 10; //定义一个整形变量a 值为10 int b = 20; //定义一个整形变

  • 如何使用正则表达式判断邮箱(以C#为例)

    目录 首先引入正则需要使用的命名空间 判断是否为QQ邮箱 判断是否为邮箱 补充:C#正则表达式(Regex类) 总结 日常开发中,判断邮箱是少不了的,这个我以**C#**为例,来写一个判断方法,正则表达式是通用的,CV就可以 首先引入正则需要使用的命名空间 //正则验证引用 using System.Text.RegularExpressions; 判断是否为QQ邮箱 /// <summary> /// 验证QQ邮箱 /// </summary> /// <param nam

  • C#使用第三方组件实现动态解析和求值字符串表达式

    目录 介绍 1.Z.Expressions.Eval 表达式解析 2.NReco.LambdaParser 表达式解析 3.DynamicExpresso 表达式解析 4.SQL条件语句的正则表达式和字符串求值处理 介绍 在进行项目开发的时候,刚好需要用到对字符串表达式进行求值的处理场景,因此寻找了几个符合要求的第三方组件LambdaParser.DynamicExpresso.Z.Expressions,它们各自功能有所不同,不过基本上都能满足要求.它们都可以根据相关的参数进行字符串表达式的求

  • C#五类运算符使用表达式树进行操作

    在 C# 中,算术运算符,有以下类型 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 这些运算符根据参数的多少,可以分作一元运算符.二元运算符.三元运算符.本文将围绕这些运算符,演示如何使用表达式树进行操作. 对于一元运算符和二元运算符的 Expression 的子类型如下: UnaryExpression; //一元运算表达式 BinaryExpression; //二元运算表达式 一,算术运算符 运算符 描述 + 把两个操作数相加 - 从第一个操作数中减去第二个操作数

  • C# 运算符 ?、??、?: 各种问号的用法和说明

    1.可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空,例如:string str=null;是正确的.int i=null:编译器将报错.为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符?来表示,表现形式为T?.例:int?表示是可空的整形,DateTime?表示为可空的时间.T?其实是System.Nullable<T>(泛型结构)的缩写形式,也就意味着当你用到T?时编译器在编译时会把T?编译成System.Nullable<T&

  • C#6 null 条件运算符

    1. 老版本的代码 namespace csharp6 { internal class Person { public string Name { get; set; } } internal class Program { private static void Main() { Person person = null; string name = null; if (person != null) { name = person.Name; } } } } 在我们使用一个对象的属性的时候

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

    目录 类型转换 1.表达式 1.2 运算符分类 2.数学运算符 3.赋值运算符 4.关系运算符 5.布尔运算符 6.位运算符 6.1 &按位与运算 6.2 或|按位运算 6.3 异或^按位运算符 6.4按位取反~按位预算符 6.5 左移<<运算符 6.6右移 7.其他运算符 7.1 字符连接运算符+ 7.3 三元运算符 8.运算优先级 总结练习 类型转换 Convert.To类型() 1.表达式 将变量和字面值(在使用运算符时,他们都称作操作数)与运算符组合起来就得到了表达式,它是计算

  • javascript表达式和运算符详解

    一.js表达式 定义:表达式是指能计算出值得任何可用程序单元.  --wiki 表达式是js一种短语,可是js解释器用来产生一个值.  --js<权威指南> 1.原始表达式. 常量/直接量: 3.14/ "test" 等 关键字: null,this,true,false 等 变量: i,k,j 等 复合表达式:原始表达式和原始表达式之间用运算符连接可以组成一个复合表达式. 例如: 10 * 20 这就是一个复合表达式 2.(数组.对象的)初始化表达式. 例如: [1,2]

  • Javascript核心读书有感之表达式和运算符

    表达式是javascript中的一个短语,javascript解释器会将其计算出一个结果.程序中常用量是最简单的一类表达式就是变量.变量名也是一种简单的表达式,它的值就是赋值给变量的值. 复杂的表达式是由简单的表达式组成的.比如数组访问表达式是由一个表示数组的表达式,方括号.一个整数表达式构成.它们所组成新的表达式运算结果是该数组特定位置的元素值.同样的函 数调用表达式由一个表示函数对象的表达式和0个多个参数表达式构成.将简单表达式组成复杂表达式最常用的方法就是运算符. 本章(本文)将讲解所有j

  • perl 标量和运算符的一些知识介绍

    1.Perl将一般的变量成为标量,该变量可以指代的直接量包括两种:数字直接量:字符串直接量. a) 字符串的表示方法:单引号,单引号中的字符串中的含义直观,不需要求变量值和转义字符:双引号,需要求变量值和转义字符值.如果需要消除,通常需要在前面添加反斜杠,其中的单引号或双引号也需要. b) 此外,可以使用qq或q分别代替双引号或单引号,界限符可以用成对的(), <>, {}, []等. 2. 标量变量: $加变量名(数组使用@,哈希结构使用%):变量名区分大小写:使用标量前不用声明但需要初始化

  • 解析python高级异常和运算符重载

    目录 一.高级异常 二.环境管理器 2.1.对象的属性管理函数 三.运算符重载 3.1.算术运算符的重载 四.反向算术运算符的重载 五.复合赋值算术运算符的重载 六.比较运算符的重载 七.位运算符重载 八.反向位运算符重载 九.复合赋值位运算符重载 十.一元运算符的重载 十一.in / not in 运算符的重载 十二.索引和切片运算符的重载 十三.slice 构造函数 一.高级异常 回顾异常相关的语句: try-except:用来捕获异常的通知 try-finally:用来做一定要做的事 re

  • JavaScript详细分析数据类型和运算符

    目录 一.js中的数据类型 1.数值型 2.字符串型 3.逻辑(布尔)型 4.空(null)值 5.未定义(undefined) 6.复合数据类型Object 二.JavaScript中的运算符 1.算数运算符 2.赋值运算符 3.比较运算符 4.逻辑运算符 一.js中的数据类型 1.JS是弱类型的脚本语言,所有的变量对象的数据类型的声明都是var . 2.变量声明时没有确定具体的数据类型,在变量赋值时确定变量具体的数据类型. 五种基本的数据类型 1.数值型 number整数和浮点数统称为数值.

  • oracle中通配符和运算符的使用方法介绍

    用于where比较条件的有: 等于:=.<.<=.>.>=.<> 包含:in.not in exists.not exists 范围:between...and.not between....and 匹配测试:like.not like Null测试:is null.is not null 布尔链接:and.or.not 通配符: 在where子句中,通配符可与like条件一起使用.在Oracle中: %(百分号): 用来表示任意数量的字符,或者可能根本没有字符. _(

  • C++运算符重载的方法详细解析

    运算符重载实质上是函数的重载 重载运算符的函数一般格式如下: 函数类型    operator  运算符名称    (形参表列) {对运算符的重载处理} 例如,想将"+"用于Complex(复数)的加法运算,函数的原型可以是这样的: 复制代码 代码如下: Complex operator + (Complex & c1,Complex &c2); 其中,operator是关键字,时候专门用于定义重载运算符的函数的,运算符名称就是C++提供给用户的预定运算符. 注意:函数

  • Es6 Generator函数详细解析

    ECMAScript 6 (简称 ES6 )作为下一代 JavaScript 语言,将 JavaScript 异步编程带入了一个全新的阶段. Generator函数跟普通函数的写法有非常大的区别: 一是,function关键字与函数名之间有一个星号: 二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是"产出"). 本文重点给大家介绍Es6 Generator函数,具体内容如下所示: /* 一.generator函数的定义 1.Generator 函数是

  • Java基本数据类型和运算符详解

    本文实例讲述了Java基本数据类型和运算符.分享给大家供大家参考,具体如下: 基本数据类型 Java 是一种强类型的语言,声明变量时必须指明数据类型.变量(variable)的值占据一定的内存空间.不同类型的变量占据不同的大小. Java中共有8种基本数据类型,包括4 种整型.2 种浮点型.1 种字符型.1 种布尔型,请见下表. Java基本数据类型 数据类型 说明 所占内存 举例 备注 byte 字节型 1 byte 3,127   short 短整型 2 bytes 3,32767   in

随机推荐