一. Bool类型
 
逻辑判断, C#中只有true和false两个值;
使用场景: 在分支和循环语句中, 常用作为判断条件来使用;
 
二. 关系运算符
 
关系运算符 (> < >= <= == !=), 判断后的结果会产生一个Bool类型的值.
关系运算符经常会和算术运算符连在一起使用, 因此会产生一个优先级:
算术运算符 > 关系运算符(自己的都是平级) > 逻辑运算符
注意: "==" 代表的是判断是否相等, 而 '=' 代表的是赋值运算
 
三. 逻辑运算符(&& || ! )
 
&&(逻辑与): 逻辑与运算符两边的表达式同时为真, 整个表达式的结果才为真(一假则假)
||(逻辑或): 逻辑或运算符两边的表达式同时为假, 整个表达式的结果才为假(一真则真)
!(逻辑非): 原来为真 非之后为假, 原来为假 非之后为真
注: && 和 || 运算都存在短路现象; 例如, 当进行 && 运算的时候, 如果 前面的为假, 则后面的不再执行. 同理, 当进行 || 运算的时候, 如果 前的为真, 则后面的不再执行.
int num1 = , num2 = , num3 = ;
bool res = num1 > num2 && ++num2 < num3;
Console.WriteLine(num2);
// num2 = 30, 这里 num1 > num2 为假, res 直接为False, ++num2的操作就会被略过不被执行 // 从键盘中输入三个数a,b,c 如果a 是中间数则打印出True 否则为False
Console.WriteLine("Please enter three numbers:");
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
Console.WriteLine((a > b && a < c) || (a < b && a > c));
 
程序执行的三大结构: 顺序结构 分支结构 循环结构
 
四. if分支语句(重点)
 
if的第一种形式 (要么执行要么不执行)
 
if (判断条件)
{
要执行的代码;
}
// 执行机制: 当判断条件为真时, 执行{}里的代码 Console.WriteLine("Please enter two numbers:");
float a = float.Parse(Console.ReadLine());
float b = float.Parse(Console.ReadLine());
if (a > b)
{
Console.WriteLine("a = {0}" , a);
}

if的第二种形式(二者必选其一执行)

if (判断条件)
{
代码一;
}
else
{
代码二;
} // 输入一个年份, 判断它是否是一个闰年
Console.WriteLine("Please enter the year:");
int year = int.Parse(Console.ReadLine());
if (year % == || (year % == && year % !=))
{
Console.WriteLine("这是一个闰年.");
}
else
{
Console.WriteLine("这不是一个闰年");
} // 逢七过
Console.WriteLine("Please enter the number:");
int num = int.Parse(Console.ReadLine());
if (num % != && num % != && num / != )
{
Console.WriteLine(num);
}
else {
Console.WriteLine( "过");
}

if的第三种形式(适用于多种条件并存的时候)

if (判断条件1)
{
代码1;
if (判断2)
{
代码2;
}
else{
代码3;
}
}
else
{
代码4;
}
// 判断年龄是否在[18, 28], 如果在打印"可以考虑", 否则打印"很可惜年龄不符合", 如果年龄在,继续判断身高是
//是否在[155, 170]之间的, 如果在打印"是我的菜", 否则打印""对不起身高不合适".
Console.WriteLine("你多大了?");
int age = int.Parse(Console.ReadLine()); if (age >= && age <= )
{
Console.WriteLine("可以考虑哦~");
Console.WriteLine("那你多高呢?");
int tall = int.Parse(Console.ReadLine());
if (tall >= && tall <= )
{
Console.WriteLine("你是我的菜~");
}
else
{
Console.WriteLine("对不起, 身高不合适...");
}
}
else
{
Console.WriteLine("很可惜年龄不合适...");
}
 
第四种形式
 
if(判断条件1)
{
代码1;
}
else if(判断条件2)
{
代码2;
}
else
{
代码3;
} // 输入一个字符, 如果是数字打印"是数字", 如果是小写字母, 打印"是小写字母", 如果是大写字母打印
// "是大写字母"
Console.WriteLine("Please enter something:");
int a = Console.Read();
if (a >= && a <= )
{
Console.WriteLine("number");
}
else if (a >= && a <= )
{
Console.WriteLine("Upper word");
}
else if (a >= && a <= )
{
Console.WriteLine("Lower word");
}

五. switch语句

注意:

1.每有一种情况就要有一个case;
2.default 不是必须的, 可写可不写, 主要看用户体验;
3.case后面可以是整型表达式/ char / 枚举 / 字符串;
4.case是无序的;
5.可以向下贯穿 -- case后面什么也没有的始胡就会执行下一个Case里的代码;
 
 
六. 三目运算符(条件运算符 ? :)
 
格式 : 条件表达式 ? 表达式1 : 表达式2;
原理: 当条件表达式成立时, 返回出表达式1 的结果, 否则返回表达式2的结果
 
 
 
补充一些VS2019的快捷键

 
 

C#学习笔记02--Bool,关系/逻辑运算符, if/switch语句的更多相关文章

  1. 软件测试之loadrunner学习笔记-02集合点

    loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...

  2. 机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN)

    机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN) 关键字:邻近算法(kNN: k Nearest Neighbors).python.源 ...

  3. OpenCV 学习笔记 02 使用opencv处理图像

    1 不同色彩空间的转换 opencv 中有数百种关于不同色彩空间的转换方法,但常用的有三种色彩空间:灰度.BRG.HSV(Hue-Saturation-Value) 灰度 - 灰度色彩空间是通过去除彩 ...

  4. SaToken学习笔记-02

    SaToken学习笔记-02 如果排版有问题,请点击:传送门 常用的登录有关的方法 - StpUtil.logout() 作用为:当前会话注销登录 调用此方法,其实做了哪些操作呢,我们来一起看一下源码 ...

  5. Redis:学习笔记-02

    Redis:学习笔记-02 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 4. 事物 Redis 事务本 ...

  6. Qt Creator 源码学习笔记02,认识框架结构

    阅读本文大概需要 6 分钟 在上一篇大概了解了关于Qt Creator 基础知识后[1],本篇先学习下框架基本结构,这样能够清晰的知道这个框架当中包含哪些文件.文件夹.工程文件,这些文件分别代表什么意 ...

  7. [Golang学习笔记] 02 命令源码文件

    源码文件的三种类型: 命令源文件:可以直接运行的程序,可以不编译而使用命令“go run”启动.执行. 库源码文件 测试源码文件 面试题:命令源码文件的用途是什么,怎样编写它? 典型回答: 命令源码文 ...

  8. 类型和变量(C#学习笔记02)

    类型和变量 [C#类型和变量(原文参考官方教程)]https://docs.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/types-and-var ...

  9. OGG学习笔记02

    实验环境:源端:192.168.1.30,Oracle 10.2.0.5 单实例目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1.模拟源数据库业务持续运行 2.配置OGG前 ...

随机推荐

  1. C#3种常见的定时器(多线程)

    总结以下三种方法,实现c#每隔一段时间执行代码: 方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间: 方法二:使用System.Timers.Timer类: 方法三:使用Sys ...

  2. 阿里规范不建议多表Join,可这SQL要怎么写?

    阿里开发手册的描述,禁止多表join: 手册上写着[强制],相信很多同学项目里面的代码都不满足这个要求. 但是关键问题是:不用join,这SQL究竟要怎么写?! 分解关联查询 即对每个要关联的表进行单 ...

  3. Nginx专题(1):Nginx之反向代理及配置

    摘要:本文从Nginx的概念出发,分别从反向代理的概念.优势.配置代码3个方面介绍了Nginx的特性之一反向代理. 文章来源:宜信技术学院 & 宜信支付结算团队技术分享第一期-宜信支付结算八方 ...

  4. SpringCloud之Hystrix-Dashboard监控,以及踩的坑...

    前言: 最近刚入职,公司使用了SpringCloud,之前有了解过SpringCloud,但是长时间不去搭建不去使用很容易就忘了,因此空闲时间重新复习一下SpringCloud.但是之前开的Sprin ...

  5. 前端技术之:通过plop生成Controller的方法与步骤

    # Controller的生成 开发者可以通过plop命令生成各种类型的控制器类(Normal.Restful.View), 以下是示例生成步骤. 1. 执行以下命令: plop controller ...

  6. Netty学习篇④-心跳机制及断线重连

    心跳检测 前言 客户端和服务端的连接属于socket连接,也属于长连接,往往会存在客户端在连接了服务端之后就没有任何操作了,但还是占用了一个连接:当越来越多类似的客户端出现就会浪费很多连接,netty ...

  7. Netty启动流程剖析

    编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo.Rocketmq.Hadoop等,针对高性能RPC,一般都是基 ...

  8. Python - selenium自动化-Chrome(headless)

    什么是 Headless Chrome Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序.相比于现代浏览 ...

  9. MyBatis --- 映射关系【一对一、一对多、多对多】,懒加载机制

    映射(多.一)对一的关联关系 1)若只想得到关联对象的id属性,不用关联数据表 2)若希望得到关联对象的其他属性,要关联其数据表 举例: 员工与部门的映射关系为:多对一 1.创建表 员工表 确定其外键 ...

  10. FileStream相关知识分享

    一.如何理解FIleStream 通过前3章的学些,相信大家对于Stream已经有一定的了解,但是又如何去理解FileStream呢?请看下图: 我们磁盘中的任何文件都是通过二进制数组组成,最为直观的 ...