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. 看下面的代 ...
随机推荐
- 快速搭建springmvc+spring data jpa工程
一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ...
- Android性能优化之利用LeakCanary检测内存泄漏及解决办法
前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来. ...
- Android N开发 你需要知道的一切
title: Android N开发 你需要知道的一切 tags: Android N,Android7.0,Android --- 转载请注明出处:http://www.cnblogs.com/yi ...
- 从零开始编写自己的C#框架(24)——测试
导航 1.前言 2.不堪回首的开发往事 3.测试推动开发的成长——将Bug消灭在自测中 4.关于软件测试 5.制定测试计划 6.编写测试用例 7.执行测试用例 8.发现并提交Bug 9.开发人员修复B ...
- Python碎碎念
1. 如何添加路径 主要有以下两种方式: 1> 临时的 import sys sys.path.append('C:\Users\Victor\Desktop') 2> 永久的 在Linu ...
- 原生js+css3实现图片自动切换,图片轮播
运用CSS3transition及opacity属性 制作图片轮播动画 自己这两天根据用js来控制触发CSS3中transition属性,从而写出来的以CSS3动画为基础,js控制过程的图片轮播 运用 ...
- WPF CheckBox 样式
<Style x:Key="FocusVisual"> <Setter Property="Control.Template"> < ...
- Struts2入门(六)——国际化
一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...
- [转载]MVVM模式原理分析及实践
没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...
- [LeetCode] Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子字符串
Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...