c# 编程学习(四)
逻辑AND(逻辑与)操作符(用&&表示)和逻辑OR(逻辑或) 操作符(用||表示)。这两个操作符统称条件逻辑操作符。
只有作为操作数的两个布尔表达式都为 true。
操作符&&和||都支持短路求值
例如,假定操作符&& 的左操作数求值为 false,整个表达式的结果肯定是 false,无论右操作数的值是什么
if 语句的语法如下所示(if 和 else 是 C#关键字):
if ( booleanExpression )
statement-1;
else
statement-2;
如果booleanExpression(布尔表达式)求值为true,就运行 statement 1;否则运行statement 2。
else 关键字和后续的 statement 2 是可选的。
如果没有 else 子句,而且 booleanExpression 为 false,那么什么事情都不会发生,程序继续执行 if 语句之后的代码。
注意布尔表达式必须放在圆括号中,否则无法编译
表达式必须是布尔表达式。在 另一些语言中(尤其是 C 和 C++),还可以使用整数表达式,编译器自动将整数值转换成 true(非 0 值)或 false(0)。C#不允许这样做,看到这样的表达式会报告编译错误。
switch 语句语法如下(switch,case 和 default 是 C#关键字):
switch ( controllingExpression )
{
case constantExpression :
statements
break;
case constantExpression :
statements
break;
...
default :
statements
break;
}
controllingExpression(控制表达式)只求值一次,而且必须包含在圆括号中。然后逐个检查
constantExpression(常量表达式), 找到和 controllingExpression 值相等的, 就执行由它标识的代码块(constantExpression 称为 case 标签)。进入代码块后,将一直执行到 break;语句。 遇到 break;后,switch 语句结束,程序从 switch 语句结束大括号之后的第一个语句继续执 行。没有找到任何匹配的 case 标签,就运行由可选的 default 标签所标识的代码块。
注意 每个 constantExpression 值都必须唯一,使 controllingExpression 只能与它们当中 的一个匹配。如果 controllingExpression 的值和任何 constantExpression 的值都不匹配,也没有 default 标签,程序就从 switch 的结束大括号之后的第一个语句继 续执行。
switch 语句很有用,但使用须谨慎。switch 语句要严格遵循以下规则:
switch 语句的控制表达式只能是某个整型(int,char,long 等)或 string。其他任何 类型(包括 floatfloat 和 double 类型)只能用 if 语句。
case 标签必须是常量表达式,如 42(控制表达式是 int),'4'(控制表达式是 char)或 "42"(控制表达式是 string)。要在运行时计算 case 标签的值,必须使用 if 语句。
case 标签必须唯一,不允许两个 case 标签具有相同的值。
可以连续写多个 case 标签(中间不间插额外的语句),指定在多种情况下都运行相 同的语句。如果像这样写,最后一个 case 标签之后的代码将适用于所有 case。但 假如两个标签之间有额外的代码,又没有使用 break 跳出,就不能从第一个标签 贯穿(也称直通)到第二个标签,编译器会报错。
例如:
switch (trumps)
{
case Hearts :
case Diamonds : // 允许直通——标签之间无额外代码
color = "Red"; // Hearts和Diamonds两种情况都执行相同的代码
break;
case Clubs :
color = "Black";
case Spades : // 出错——标签之间有额外代码,又没有用break跳出
color = "Black";
break;
}
c# 编程学习(四)的更多相关文章
- 多线程编程学习四(Lock 的使用).
一.前言 本文要介绍使用Java5中 Lock 对象,同样也能实现同步的效果,而且在使用上更加方便.灵活,主要包括 ReentrantLock 类的使用和ReentrantReadWriteLock ...
- Linux网络编程学习(四) -----守护进程的建立(第三章)
本文介绍一个例程daemon_init() #include <sys/types.h> #include <signal.h> #include <unistd.h&g ...
- C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
C#中的函数式编程:递归与纯函数(二) 在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential ...
- 现代3D图形编程学习-基础简介(3)-什么是opengl (译)
本书系列 现代3D图形编程学习 OpenGL是什么 在我们编写openGL程序之前,我们首先需要知道什么是OpenGL. 将OpenGL作为一个API OpenGL 通常被认为是应用程序接口(API) ...
- 现代3D图形编程学习-基础简介(2) (译)
本书系列 现代3D图形编程学习 基础简介(2) 图形和渲染 接下去的内容对渲染的过程进行粗略介绍.遇到的部分内容不是很明白也没有关系,在接下去的章节中,会被具体阐述. 你在电脑屏幕上看到的任何东西,包 ...
- 现代3D图形编程学习-基础简介(1) (译)
本书系列 现代3D图形编程学习 基础简介 并不像本书的其他章节,这章内容没有相关的源代码或是项目.本章,我们将讨论向量,图形渲染理论,以及OpenGL. 向量 在阅读这本书的时候,你需要熟悉代数和几何 ...
- Linux Shell编程学习笔记——目录(附笔记资源下载)
LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习She ...
- DirectX 11游戏编程学习笔记之8: 第6章Drawing in Direct3D(在Direct3D中绘制)(习题解答)
本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com 注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候 ...
- 多线程编程学习笔记——async和await(一)
接上文 多线程编程学习笔记——任务并行库(一) 接上文 多线程编程学习笔记——任务并行库(二) 接上文 多线程编程学习笔记——任务并行库(三) 接上文 多线程编程学习笔记——任务并行库(四) 通过前面 ...
- 多线程编程学习笔记——使用异步IO(一)
接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...
随机推荐
- StringBuilder类练习
1 package cn.itcast.p2.stringbuffer.demo; 2 3 public class StringBuilderTest { 4 public static void ...
- zabbix-server3.4安装
1.安装yum源 rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rp ...
- MySQL存储引擎(最全面的概括)
目录 一:MySQL存储引擎 1.什么是存储引擎? 2.查看存储引擎信息 二:MySQL支持的存储引擎 1.存储引擎 三:innoDB存储引擎 1.特性 2.存储结构 3.优缺点.适用场景 四:MyI ...
- 学习JAVAWEB第十五天
今天跟着视频做一个简单的登录界面用到javabean,servlet,数据库等知识,还没做完,明天接着做.
- String类为什么可以直接赋值
在研究String直接赋值与new String的区别之前我们需要先了解java中的字符串常量池的概念 字符串常量池 String类是我们平常项目中使用频率非常高的一种对象类型,jvm为了提升性能和减 ...
- PHP扩展开发编译环境的搭建
PHP允许使用扩展的方式,直接使用C语言开发PHP的功能,由于编译的问题,很多底层和框架的基础工作如果用PHP必然会带来额外的开销,降低系统的吞吐量,必然yaf就是这样的思路,把框架封装在扩展里,让系 ...
- 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)
Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围:http: ...
- TestNG--@Factory
原文地址:http://blog.csdn.net/wanghantong TestNg的@Factory注解从字面意思上来讲就是采用工厂的方法来创建测试数据并配合完成测试 其主要应对的场景是:对于某 ...
- fuzz——AFL基础使用方法
最近打 ctf 的时候感觉有点遇到瓶颈,就来 fuzz 这块看看. AFL 全称为 American huzzy loop,是 Fuzzing 最高级的测试工具之一.这个工具对有源码和无源码的二进制程 ...
- Spark——统计文本中单词出现的次数
示例一:统计所有单词出现的次数 1.在本地创建文件并上传到hdfs中 #vin data.txt //将文件上传到hadoop的根目录下 #hdfs dfs -put data.txt / 2.在sp ...