博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言入门经典读书笔记 ----第三章 条件判断
阅读量:6272 次
发布时间:2019-06-22

本文共 1789 字,大约阅读时间需要 5 分钟。

判断过程

1.算术比较

这些运算都会得到int类型的值,如果比较结果为真,每个操作的结果都是1,如果比较结果为假,每个操作的结果都是0.

2.基本的if语句

int my_weight = 170;int your_weight = 200;if(your_weight > my_weight)    printf("你比我重");if(my_weight > your_weight)    printf("我比你重");复制代码

这里有两个if语句,比较表达式位于if后面的括号中,如果比较的结果为true,就执行if后面的语句,如果表达式是false,就跳过if后面的语句。

3.扩展if语句 : if-else

if(expression)      statement1;else    statement2;Next_statement;复制代码
  • 如果expression的值是true,就执行statement1,然后继续执行Next_statement;
  • 如果expression的值是false,就执行statement2,然后继续执行然后继续执行Next_statement;

4.在if语句中使用代码块

还可以用{}括号中的一个语句块来替换if语句中的statement1或statement2,或者都替换,因为如果不加{},那么if语句后面只能执行一条语句,可以使用{}来执行多条语句,不管多少条,都建议使用{},使得程序简洁明了。

5.逻辑运算符

  • 逻辑与运算符 && 逻辑与运算符&&是一个二元运算符,因为它合并两个逻辑表达式,即两个值为true或false的表达式。
    test1 && test2
    如果两个表达式test1和test2的值都为true,这个表达式就等于true,如果一个或两个操作数为false,该操作的结果就为false。
  • 逻辑或运算符 ||
    逻辑或运算符||用于两个或多个条件为true的情形,如果运算符的一个或两个操作数是true,那么结果就是true,只有两个操作数都是false,其结果才是false
  • 逻辑非运算符 !
    !运算符是一元运算符,因为它只有一个操作数,逻辑非运算符翻转逻辑表达式的值,使true变为false,false变为true。
  • 运算符的优先级
    (哈哈,这部分先不管了,在写代码的时候还是多使用小括号括起来,使得程序清晰易懂,也不会造成逻辑混乱)

6. switch语句

switch语句允许根据一个整数表达式的结果,从一组动作中选择一个动作,

switch(ticket_number){    case 35:        printf("you win first prize!");        break;    case 122:        printf("you win second prize!");        break;    case 144:        printf("you win third prize!");        break;    default:        printf("you lose!");        break;}复制代码

在关键词switch后面是一个表达式,如果表达式的值和下面case中的一个对应上,就执行响应的case后面的语句,遇到break语句跳出switch。如果没有匹配的值,就执行default语句后面的语句。

按位运算符

位运算符是对整数的二进制进行操作。

这些运算符都只能用于整数类型,~运算符是一元运算符,只能处理一个操作数,其他都是二元运算符。

  • 按位与运算符&合并操作数的对应位,只有两个位都是1才是1
  • 按位或运算符|,只要对应位中有一个或以上的1,结果就是1
  • 异或运算符^,如果两个位是不同的,按位异或就生成1,否则就是0
  • 一元运算符~会翻转其操作数,将1变成0,将0变成1.
  • 移位运算符会把左操作数的位移动右操作数指定的位数: 左移位运算符会把二进制值向左移指定的位数,同时在右边补0;右移位运算符会向右位移,对于无符号的数据,会在左边的空位中填充0,对于带符号的负值,其最左一位是1,则位移结果取决于系统,在大多数情况下,符号位会扩散,所以向右位移时补入的是1,但在一些系统上,补入的是0.

转载地址:http://tmlpa.baihongyu.com/

你可能感兴趣的文章
QCon演讲速递:异步处理在分布式系统中的优化作用
查看>>
Java 20年:转角遇到Go
查看>>
软件测试自动化的最新趋势
查看>>
SpringOne大会上发布了一个实验性的反应式关系型数据库连接驱动R2DBC
查看>>
新JSON绑定库JSON-B发布公开预览版
查看>>
机器人操作系统来到Windows
查看>>
.NET Core运行时和基础类库性能提升
查看>>
Eclipse Open J9:Eclipse OMR项目提供的开源JVM
查看>>
HTTP内容分发——《HTTP权威指南》系列
查看>>
PHP autoload 机制详解
查看>>
302. Smallest Rectangle Enclosing Black Pixels
查看>>
从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训
查看>>
PostgreSQL Role Management
查看>>
如何使用 Swift 开发简单的条形码检测器?
查看>>
【腾讯Bugly干货分享】一步一步实现 Android 的 MVP 框架
查看>>
[设计模式]唠唠依赖注入
查看>>
Docker-Shiny使用笔记1
查看>>
[LintCode] Interval Minimum Number
查看>>
Stimulsoft Reports.Net开发者常见问题及解决方案汇总
查看>>
使用原生js+css3实现下拉刷新效果
查看>>