逻辑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. 返回值Student-Json

    MyController中 index.jsp 修改url

  2. java内部类概述和修饰符

    1 package face_09; 2 /* 3 * 内部类访问特点: 4 * 1,内部类可以直接访问外部类的成员. 5 * 2,外部类要访问内部类,必须建立内部类的对象. 6 * 7 * 一把用于 ...

  3. 集合框架-Map集合特点及常用方法

    1 package cn.itcast.p6.map.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import ...

  4. SpringBoot集成MongoDB之导入导出和模板下载

    前言 自己很对自己在项目中集成MongoDb做的导入导出以及模板下载的方法总结如下,有不到之处敬请批评指正! 1.pom.xml依赖引入 <!-- excel导入导出 --> <de ...

  5. ApacheCN Golang 译文集 20211025 更新

    Go 云原生编程 零.前言 一.现代微服务架构 二.使用 RESTAPI 构建微服务 三.保护微服务 四.使用消息队列的异步微服务架构 五.使用 React 构建前端 六.在容器中部署应用 七.AWS ...

  6. 分子动力学模拟之基于自动微分的LINCS约束

    技术背景 在分子动力学模拟的过程中,考虑到运动过程实际上是遵守牛顿第二定律的.而牛顿第二定律告诉我们,粒子的动力学过程仅跟受到的力场有关系,但是在模拟的过程中,有一些参量我们是不希望他们被更新或者改变 ...

  7. SpringBoot的.gitignore文件使用

    简介 临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交.git提供了一个.gitignore,来自动忽略这些配置文件 配置规则 # 表示此为注释,将被Gi ...

  8. TCP和UDP的区别以及应用

    TCP定义 传输控制协议 (Transmission Control Protocol).TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算 ...

  9. JS Map与Set

    笔记整理自:廖雪峰老师的JS教程 Map JavaScript的对象有个小问题,就是键必须是字符串.但实际上Number或者其他数据类型作为键也是非常合理的. 为了解决这个问题,最新的ES6规范引入了 ...

  10. Firewalld防火墙——基础认知

    Firewalld防火墙 1.Firewalld概述 2.firewalld与iptables 的区别 3.firewalld区域的概念 4.firewalld数据处理流程 5.firewalld检查 ...