C# 本质论 第三章 操作符和控制流
操作符通常分为3大类:一元操作符(正、负)、二元操作符(加、减、乘、除、取余)和三元操作符( condition?consequence:alternative(consequence和alternative表达式类型要一致) ),它们对应的操作数分别是一个、两个和三个。
要是永远括号增加代码可读性。
要用符合格式化而不是加法操作符来拼接字符串。
可以用char类型相减求两字母距离。
float具有七位精度:
错误代码:
float n1 = 0.987654321;

正确代码:
float n = 0.987654321F;
Console.WriteLine(n); //Displays: 0.9876543
float n = ;//不加F也可以
Console.WriteLine(n);
//Displays: 9.876543E+8
二进制浮点类型内部实际存储的是二进制分数而不是十进制分数。所以,分母不是2的整数次幂的小数无法用二进制浮点数准确表示。实际上,使用一个接近十六位float的,并且分母为2整数次幂的分数来表示。double十五位有效数字。
double n = 140.6F;
Console.WriteLine(n);
//Displays: 140.600006103516
避免在需要准确的十进制算术运算时使用二进制浮点类型,而使用decimal浮点型。
double n = 140.63435423524252315;
Console.WriteLine(n);
//Displays:140.634354235243 double n = 140.63435423524242315;
Console.WriteLine(n);
//Displays: 140.634354235242
所以,避免二进制浮点类型用于相等性条件式。要么判断两个值之差是否在容差范围之内,要么使用decimal类型。
float n = 0F;
Console.WriteLine(n/);
//Displays: 非数字 Console.WriteLine(/);
//报错:被常数零除 Console.WriteLine(0.0/);
//Displays: 非数字 Console.WriteLine(-/);
//报错:被常数零除 Console.WriteLine(-1F/);
//Displays: 负无穷大 Console.WriteLine(1F/);
//Displays: 正无穷大
复合赋值操作符:
char current = 'z';
int unicodeValue;
do
{
unicodeValue = current;
Console .Write("{0}={1}\t",current,unicodeValue);
current--;
} while (current>='a');
Console.Read();

int count = ;
int result;
result = count++;
Console .Write("{0}\t{1}",result,count);
Console.ReadLine();
//123 124
int count = ;
int result;
result = ++count;
Console .Write("{0}\t{1}",result,count);
Console.ReadLine();
//124 124
前缀操作符的结果是变量递增递减之后的值,而后缀操作符的结果是变量递增递减之前的值。
不要用常量表示将来可能变化的任何值。
空接合操作符(??)如果之前都是null,则表示最后一个表达式。
x ?? y ?? z;
不要将移位操作符用作乘除法。
按位逻辑操作符:& | ^ 不进行“短路求值”:& |
按位赋值操作符:&= |= ^=
取反操作符(~)
控制流:
do/while类似于while循环,区别在于它至少会循环一次。
foreach循环:
foreach(type variable in collection)
statement
不要使用continue作为跳转语句退出switch小节。
跳转语句:break。
预处理指令:在编译时调用
#region
#endregion
C# 本质论 第三章 操作符和控制流的更多相关文章
- perl5 第三章 操作符
第三章 操作符 by flamephoenix 一.算术操作符二.整数比较操作符三.字符串比较操作符四.逻辑操作符五.位操作符六.赋值操作符七.自增自减操作符八.字符串联结和重复操作符九.逗号操作符十 ...
- Think in Java 第三章操作符
Think in Java 第三章操作符 赋值 对象赋值 我们真正操作的是对对象的引用.所以倘若"将一个对象赋值给另一个对象",实际上是将"引用"从一个地方 ...
- 初读"Thinking in Java"读书笔记之第三章 --- 操作符
更简单的打印语句 导入自己编写的静态类库,即可使用print();打印 使用Java操作符 操作符:+,-,*,/,=,==,!=,+=,?:,%等 几乎所有操作符都只能操作"基本类型&qu ...
- 《Java编程思想》笔记 第三章 操作符
1.操作符种类: 运算顺序1-7 一元操作符(单目操作符) - 负号, + 正号,--递减,++递增 算术操作符 + - * / % 移位操作符 <<左移(低位补0),>&g ...
- java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;
<java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...
- Rxjava2实战--第三章 创建操作符
Rxjava2实战--第三章 创建操作符 Rxjava的创建操作符 操作符 用途 just() 将一个或多个对象转换成发射这个或者这些对象的一个Observable from() 将一个Iterabl ...
- 《Entity Framework 6 Recipes》中文翻译系列 (19) -----第三章 查询之使用位操作和多属性连接(join)
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-16 过滤中使用位操作 问题 你想在查询的过滤条件中使用位操作. 解决方案 假 ...
- Java语言程序设计(基础篇) 第三章 选择
第三章 选择 3.8 计算身体质量指数 package com.chapter3; import java.util.Scanner; public class ComputeAndInterpret ...
- 07.C#泛型的限制和可空类型的简单说明(三章3.5-四章4.1)
自己在写文章的同时,也是在学习,对于书中的语句很多其实没有太好的理解,读一本书,要消化!!!三章都是讲泛型的,最后写一下泛型的限制,对于本章学习的完结,one end,one begin. 看下面的代 ...
随机推荐
- SQL Server-聚焦NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL性能分析(十八)
前言 本节我们来综合比较NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL的性能,简短的内容,深入的理解,Always to review the basics. ...
- arcgis api for js入门开发系列六地图分屏对比(含源代码)
上一篇实现了demo的地图标绘模块,本篇新增地图地图分屏对比模块,截图如下(源代码见文章底部): 对效果图的简单介绍一下,在demo只采用了两分屏对比,感兴趣的话,可以在两分屏的基础上拓展,修改css ...
- Quartz2D总结
天了噜,脑子完全懵了,最起码说出来个上下文啊,连这个都给忘了,特此总结一下,并以此缅怀这次面试 Quartz2D的API来自于Core Graphics(这就是为什么CGContextRef是以CG开 ...
- Android中Activity运行时屏幕方向与显示方式详解
现在我们的手机一般都内置有方向感应器,手机屏幕会根据所处位置自动进行横竖屏切换(前提是未锁定屏幕方向).但有时我们的应用程序仅限在横屏或者竖屏状态下才可以运行,此时我们需要锁定该程序Activity运 ...
- windows下mongodb配置
打开cmd(windows键+r输入cmd)命令行,进入D:\mongodb\bin目录(如图先输入d:进入d盘然后输入cd d:\mongodb\bin), 输入如下的命令启动mongodb服务: ...
- A/B Testing的简要知识
A/B testing主要用来检测网站或者APP的两个版本中哪一个更好,它的中心思想是把流量一分为二,一份用作experiment group,访问新的版本,另一份用作control group,访问 ...
- Nlog配置实例
彩色Console target <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns= ...
- 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码
不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 ...
- HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术
最近做项目在前端我使用了很多新技术,这些技术有bootstrap.angularjs,不过最让我兴奋的还是使用了HTML5的技术,今天我想总结一些HTML5的技术,好记性不如烂笔头,写写文章可以很好的 ...
- ABP框架 - 多层结构
文档目录 本节内容: 简介 ABP结构 多层 其它层(通用) 领域(Core)层 应用层 基础层 Web & 表示层 其它 总结 简介 一个应用的代码库的分层是一个广为接受的技术,用来减少复杂 ...