逻辑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. Qt之消息对话框

    widget.h: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QLineEdit> class ...

  2. gin框架中的参数验证

    结构体验证 用gin框架的数据验证,可以不用解析数据,减少if else,会简洁许多. 处理请求方法 func structValidator(context *gin.Context) { var ...

  3. 获取URL中的某段字符

    1. Location 对象 Location 对象包含有关当前 URL 的信息. Location 对象是 window 对象的一部分,可通过 window.Location 属性对其进行访问. ️ ...

  4. memcached 小记

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串.对象).这些数据可以是数据库调用.API ...

  5. java 坐标练习

    定义一个三维空间的点,有三个坐标 实现以下目标: 1.可以生成特定坐标的点对象 2.提供可以设置三个坐标的方法 3.提供可以计算该点到特定点距离的平方的方法 class Point { double ...

  6. py笔记第一篇

    #!/usr/bin/python #coding=utf-8 #@rename file #@2019/11/27 import os ls = os.rename('/root/tigergao. ...

  7. WebAssembly编译

    环境:centos 7.9 1.准备环境 sudo yum install docker sudo systemctl start docker.service sudo docker pull tr ...

  8. AT2644 [ARC076C] Connected?

    可以发现这个问题是存在边界的,那么我们可以先放宽一下条件思考一下没有边界的情况. 通过手玩可以发现,若不存在边界总是可以完成这个任务的. 因为两条曲线之间不存在交点,那么每次我们可以从空隙穿过一条直线 ...

  9. ubuntu php连接oracle数据库

    转载请注明来源:https://www.cnblogs.com/hookjc/ 需要将数据库从mysql迁移到oracle.下了个oracle xe在ubuntu下折腾了好久,都只能启动1521的侦听 ...

  10. SqlServer数据库表生成C# Model实体类SQL语句——补充

    在sql语句最前边加上  use[数据库名] 原链接:https://www.cnblogs.com/jhli/p/11552105.html   --[SQL骚操作]SqlServer数据库表生成C ...