逻辑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# 编程学习(四)的更多相关文章

  1. 多线程编程学习四(Lock 的使用).

    一.前言 本文要介绍使用Java5中 Lock 对象,同样也能实现同步的效果,而且在使用上更加方便.灵活,主要包括 ReentrantLock 类的使用和ReentrantReadWriteLock ...

  2. Linux网络编程学习(四) -----守护进程的建立(第三章)

    本文介绍一个例程daemon_init() #include <sys/types.h> #include <signal.h> #include <unistd.h&g ...

  3. C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

    C#中的函数式编程:递归与纯函数(二)   在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential ...

  4. 现代3D图形编程学习-基础简介(3)-什么是opengl (译)

    本书系列 现代3D图形编程学习 OpenGL是什么 在我们编写openGL程序之前,我们首先需要知道什么是OpenGL. 将OpenGL作为一个API OpenGL 通常被认为是应用程序接口(API) ...

  5. 现代3D图形编程学习-基础简介(2) (译)

    本书系列 现代3D图形编程学习 基础简介(2) 图形和渲染 接下去的内容对渲染的过程进行粗略介绍.遇到的部分内容不是很明白也没有关系,在接下去的章节中,会被具体阐述. 你在电脑屏幕上看到的任何东西,包 ...

  6. 现代3D图形编程学习-基础简介(1) (译)

    本书系列 现代3D图形编程学习 基础简介 并不像本书的其他章节,这章内容没有相关的源代码或是项目.本章,我们将讨论向量,图形渲染理论,以及OpenGL. 向量 在阅读这本书的时候,你需要熟悉代数和几何 ...

  7. Linux Shell编程学习笔记——目录(附笔记资源下载)

    LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习She ...

  8. DirectX 11游戏编程学习笔记之8: 第6章Drawing in Direct3D(在Direct3D中绘制)(习题解答)

            本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候 ...

  9. 多线程编程学习笔记——async和await(一)

    接上文 多线程编程学习笔记——任务并行库(一) 接上文 多线程编程学习笔记——任务并行库(二) 接上文 多线程编程学习笔记——任务并行库(三) 接上文 多线程编程学习笔记——任务并行库(四) 通过前面 ...

  10. 多线程编程学习笔记——使用异步IO(一)

    接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...

随机推荐

  1. android ndk下没有pthread_yield,好在std::this_thread::yield()可以达到同样的效果

    一个多线程的算法中,发现线程利用率只有47%左右,大量的处理时间因为usleep(500)而导致线程睡眠: 性能始终上不去. 把usleep(500)修改为std::this_thread::yiel ...

  2. gorm中的高级查询

    智能选择字段 GORM 允许通过 Select 方法选择特定的字段,如果您在应用程序中经常使用此功能,你也可以定义一个较小的结构体,以实现调用 API 时自动选择特定的字段,例如: type User ...

  3. Go 面向对象编程应用

    #### Go 面向对象编程应用前面学习了很多的基础知识,这一节来实际写一个小案例:涉及到的知识: 1. 数组的基本使用2. 结构体3. 切片 4. 方法5. 循环6. 函数返回值(命名返回值,普通返 ...

  4. java关键字final

    //继承弊端:打破了封装性 /* * final关键字: * 1,final是一个修饰符,可以修饰类,方法,变量. * 2,final修饰的类不可以被继承. * 3,final修饰的方法不可以被覆盖. ...

  5. SaltStack 的基本概念与工作原理 架构设计

    随着云计算技术的快速普及与发展,越来越多的企业开始学习和搭建自己的云平台代替传统的 IT 交付模式,企业的 IT 环境也随之越来越复杂,常规的运维方法与技术已经无法满足现在云环境中系统的配置与变更.基 ...

  6. Web安全防护(二)

    点击劫持 点击劫持,也称UI覆盖攻击 1.1 iframe覆盖攻击 黑客创建一个网页,用iframe包含了目标网站,并且把它隐藏起来.做一个伪装的页面或图片盖上去,且按钮与目标网站一致,诱导用户去点击 ...

  7. zabbix-mongodb监控脚本(高性能、低占用)

    Zabbix调用脚本以实现对MongoDB的监控! 本脚本支持对服务存活状态.副本集.性能指标共计25个监控项! 使用mongostat和"echo rs.status()["me ...

  8. 告别痛苦,快乐学习Pandas!开源教程《Joyful-Pandas》发布

    作者:耿远昊.Datawhale团队 寄语:Pandas 是基于Numpy的一种工具,是为了解决数据分析任务而创建的,其纳入了大量库和一些标准的数据模型,提供了大量能使我们快速便捷地处理数据的函数和方 ...

  9. BOM与DOM之DOM操作

    目录 一:DOM操作 1.DOM介绍 2.DOM标准规定HTML文档中的每个成分都是一个节点(node): 3.DOM操作需要用关键字 二:查找标签 1.id查找 类查找 标签查找(直接查找) 2.i ...

  10. js instanceof 解析

    js中的instanceof运算符 概述 instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上 语法 obj instanceofOb ...