正经学C#_布尔运算[布尔值与其布尔运算符]:《c#入门经典》
前面几个章节简述了 C#中得常用得算术运算符。这一章节说布尔值与其布尔运算符。
布尔值在c#中表示方式是 bool类型,这个类型可以储存两个值,true或者false,或者真或者假,可以说0或者1.
布尔运算在c#中主要用到的地方是,比较。 所以我们先说一下布尔比较运算符,也成关系运算符,后者名称较为常用。如图所示
假设变量 A 的值为 10,变量 B 的值为 20,则:
| 运算符 | 类别 | 描述 | 实例 |
|---|---|---|---|
| == | 二元 | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 不为真。 |
| != | 二元 | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (A != B) 为真。 |
| > | 二元 | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (A > B) 不为真。 |
| < | 二元 | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (A < B) 为真。 |
| >= | 二元 | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (A >= B) 不为真。 |
| <= | 二元 | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (A <= B) 为真。 |
处理常用得布尔运算时候,除了关系运算符,也会用上逻辑运算。下表
逻辑运算符
下表显示了 C# 支持的所有逻辑运算符。假设变量 A 为布尔值 true,变量 B 为布尔值 false,则:
| 运算符 | 类别 | 描述 | 实例 |
|---|---|---|---|
| & | 二元 | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 | (A &B) 为假。 |
| | | 二元 | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (A |B) 为真。 |
| ! | 一元 | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 | !(A & B) 为真。 |
| ^ | 二元 | 称为逻辑异或。两个操作数任意一个非零或者为假,则条件为真 | A^B 为真 |
| && | 二元 | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 | (A && B) 为假。 |
| || | 二元 | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (A || B) 为真。 |
表中,&和&&,|和||得结果是一样得,名字都是一样得,但是确实单独列出来的,至于有什么不同,就是后者比前者的效果要好,&&得效果就要比&得效果要好
下面这个列表得运算方式有两种,一种是操作数是布尔值时,另外一种是位移运算。先说布尔值时运算 A=true B=false
| 运算符 | 描述 | 实例 |
|---|---|---|
| &= | A&=B 相当于 A=A&B | A=Fasle |
| ^= | A^=B 相当于 A=A^B | A=True |
| |= | A|=B 相当于 A=A|B | A=True |
至于怎么理解是这样的,A&=B,相当于A=A&B,是这样解释得,当操作数是布尔值时,按照逻辑与的方式运算,并返回运算的值【布尔值的运算只有两种,True或者False】剩下两种均可按照这种方式一样运算的,当是操作数是别的时候,则按照位移运算。
正经学C#_布尔运算[布尔值与其布尔运算符]:《c#入门经典》的更多相关文章
- 正经学C#_循环[do while,while,for]:[c#入门经典]
在c#中循环语句总共三种,do...while ,while,for这三种语句. 循环语句,是为了解决一些繁琐的计算.比如输出0-10这10个数字. 在不循环的情况下你可以能这么写 Console.W ...
- 正经学C#_介绍与其编写基础:《c#入门经典》
本文所讲内容,均可在<c#入门经典>中可以查询.如有错误,敬请指出.谢谢! C#:全称C Shar.是微软.Net Framework平台下最为主要的客户语言之一.个人理解,c#是微软最为 ...
- 正经学C#_变量与其数据类型:《c#入门经典》
这一篇总结以下变量与其数据类型. 变量:在c#中指 某一个值或者数据存储在变量中,并且可以取出或者查看.变量不仅仅是一种,也有很多种,细分而言就是类型.泛指就是变量.如果是要是使用变量就要 声明变量, ...
- 正经学C#_位移与其位移运算符[c#入门经典]
在c#入门经典一书中,最为糟糕的一节就是位移了,完全没有讲明白,也没有说全,似乎只是轻轻点了一下何为位移,带了两次原码和补码,完全不理会是否明白不明白.这一点这本书很差.因为此书说了,在大多数应用开发 ...
- 布尔值与比较运算符"=="
$man = "男";$flag = $man == "男"; //双等号是比较运算符,返回布尔值,成立则返1赋给$flag 不成立返回0,0即为nullech ...
- 正经学C#_判断[IF语句]:[c#入门经典]
判断语句几乎是最为常用的语句之一,是最有效的. 先说IF语句,IF语句也是属于分支的一种,用来控制流程的. IF的语句是这样的 IF(xxx 条件) { //代码块 } ,b; ) { b=a--; ...
- 正经学C#_变量与其转换:《c#入门经典》
上一节上了变量.末尾简单了说了下 命名方式,声明变量. 命名方式在C#,或者任何语言都是非常重要的一门学问.值得去深入思考一下.变量名的优化与其工作效率的提升,有很多大的关系的. 声明变量,上节介绍了 ...
- 正经学C#_表达式与其运算符[算术运算符]:《c#入门经典》
表达式:正如字面意义,它是通过算术运算符来进行运算的数学公式.表达式的意义我们都是很明白的,大白话就是一个公式嘛.不是很难懂. 表达式不是一个单独的存在,必然有操作数或者操作符的.在c#中有操作符有很 ...
- 正经学C#_委托
以前不会,甚至连想去学都没想.啧啧啧,我是何等朽木啊. 我先不说其中理念,或者原理,咱就先说最简单的用法.怎么去使用委托. 委托 Delegate 使用委托,就要先定义一个委托.定义一个委托就要先声明 ...
随机推荐
- ubuntu lts install licode tag pre-v5.4
1. Requirements Ubuntu 14.04 LTS 2. Clone Licode codeYou first need to clone our code from github.Yo ...
- 配置Nginx实现负载均衡
在关于高并发负载均衡一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件.硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中w ...
- Linux驱动中获取系统时间
最近在做VoIP方面的驱动,总共有16个FXS口和FXO口依次初始化,耗用的时间较多.准备将其改为多线程,首先需要确定哪个环节消耗的时间多,这就需要获取系统时间. #include <linux ...
- struts2获得需要的文件或者访问路径
在struts2中,上传文件的时候遇到一个很好用但是失效的方法,找到如下替代.并且测试了一下request可以得到的相关路径. 得到request对象: HttpServletRequest requ ...
- ajax 原理
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面. 其中最关键的一步就是从服务器获得请求数据. ...
- 【转】 Pro Android学习笔记(八七):了解Handler(1):组件和线程
目录(?)[-] 主线程消息队列和线程池 查看线程信息 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingf ...
- Regexp:目录
ylbtech-Regexp:目录 1.返回顶部 1. http://www.runoob.com/regexp/regexp-tutorial.html 2. 2.返回顶部 3.返回顶部 4 ...
- spring 学习二 @RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMapping注解有六个属性,下面我们把她 ...
- 关于pipe管道的读写端关闭问题
知识概述 通过pipe在内核中创建一个文件,然后可以实现两个进程通信 管道是一种最基本的IPC机制,由 pipe 函数创建: #include <unistd.h> ]); 调用 pipe ...
- DAY17-Ajax
Ajax准备知识:json 什么是json? 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 它基于 ECMAScript ( ...