if语句
if-else if-else
 if(a==0){1} else if (a>0){2}  else{3}
 特点:1、2、3只有一个括号会被执行
 陷阱
 1、if(a!=0)  { a不是0;} else {a是0;}错误
 if (a); {  }
 if (a=0) 应为a == 0;
 if (10) int a = 9;应为if (10) {int a = 9;}作用域问题
 
逻辑运算符注意:

&&——一假即假。

||——一真即真
例:
int i=0;
int j=0;
if((++i>0)||(++j>0))
{
     printf(“%d,%d\n”,i,j);
}
输出结果中i=1,j=0
 
  l   若想判断a的值是否在(3, 5)范围内,千万不能写成3<a<5,因为关系运算符的结合方向为“从左往右”。 比如a为2,它会先算3<a,也就是3<2,条件不成立,结果为0。再与5比较,即0<5,条件成立,结果为1。因此 3<a<5的结果为1,条件成立,也就是说当a的值为2时,a的值是在(3, 5)范围内的。这明显是不对的。正确的判断方法是:(a>3) && (a<5)
 
     l   C语言规定:任何非0值都为“真”,只有0才为“假”。因此逻辑与也适用于数值。比如 5 && 4的结果是1,为“真”;-6 && 0的结果是0,为“假”

1.除法与取模运算符

  -7/4 = -1  -7./4 = -1.75  -7%4 = -3

   7/4 = 1      7./4 = 1.75    7%4 = 3 
1>取余运算:
正负性取决于%左侧的数值      

2>C99要求除法运算符使用“趋零截尾”。这种“趋零截尾”的解释方式是建议将 -1.75 转换成 -1,而不是 -2。

3>取模运算符只用于整数运算,对浮点数是无效的。根据C99的整数除法规定“趋零截尾”规则,如果第一个操作数为负数,取模后得到的模也为负数;如果第一个操作数是整数,那么得到的模也为整数。
 
余与模的关系:
a%b = a - (a/b)*b

2.增量(++)减量(--)运算符 

  当 n++是表达示的一部分时,它表示的意思是“先使用n,然后将它的值增加1”;同样,++n 表示的意思是“先将n值增加1,然后再使用它”。

  如果一个变量出现在同一个函数的多个参数中时,不要将增量或者减量运算符用于它上面。

  当一个变量多次出现在一个表达示里时,不要将增量或减量运算符运用到它上面。

  增量运算符只能用在变量名前,而不能用在常量前。

3.类型转换

 
(1)当出现在表达式中时,有符号和无符号的char和short类型都自动转换成int。在需要的情况下,将自动被转换为 unsigned int(如果 short 与 int有相同的大小,那么 unsigned short 比 int 大;在那种情况下,将把unsigned short 转换为 unsigned int)。

(2)在包含两种数据类型的任何运算里,两个值都被转换成两种类型里较高级别的。

(3)类型级别从高到低的顺序是 long double、double、float、unsigned long long、long long、unsigned long、long、unsigned int 和 int 。一个可能的例外是当 long 和 int 具有相同大小时,此时 unsigned int 比 long 的级别更高。

(4)在赋值语句里,计算的最后结果被转换成将要被赋予值的那个变量的类型。可能升级也可能降级。

(5)当作为函数的参数被传递时,char和short会被转换为int,float会被转换为double。

  级别提升通常是一个平滑的无损害的过程,但是降级可能导致真正的问题。原因很简单:一个较低级别的类型可能不够大,不能存放一个完整的数。通常应该避免自动类型转换,尤其是避免降级。

 
 
 
 
 
if语句:
if(条件表达式){
语句1;
语句2;
}
但条件为真,执行大括号内语句,否则,跳过语句,往下。
 
注意事项:
if(条件表达式);{
语句1;
语句2;
}
因为if语句后有大括号,则无论表达式真假,均执行大括号内语句
 
if条件表达式并不仅仅代表等式;
例:
if(a!=0)等价于if(a)
 
 
条件表达式?表达式1:表达式2 
如果条件表达式为真,整个表达时的值是表达式1
如果条件表达式为假,整个表达式的值为表达式2
例:
   int  c=a>b?a:b;

逻辑(if)、关系、数字、条件运算符的更多相关文章

  1. 数字逻辑实践6-> 从数字逻辑到计算机组成 | 逻辑元件总结与注意事项

    00 一些前言 数字逻辑是计算机组成与体系结构的前导课,但是在两者的衔接之间并没有那么流畅,比如对面向硬件电路的设计思路缺乏.这篇总结是在数字逻辑和计组体系结构的衔接阶段进行的. 虽然这篇文是两门课的 ...

  2. 几幅图片弄清DFT、DTFT、DFS的关系 数字信号处理

    原址:http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html 很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DF ...

  3. 复习java逻辑---实现猜数字游戏

    package shopping; import java.util.*; public class SendGiftMenu { public static void main(String[] a ...

  4. Oracle的物理存储与逻辑存储关系对应

    逻辑结构: TableSapce 由 多个 Segment组成 Sgement 由多个 Extent 组成 Extent 由 多个数据块组成 物理结构: 一个Tablespace 可以包括多个数据文件 ...

  5. cpu,内存,虚拟内存,硬盘,缓存之间是什么关系??

    1.CPU即中央处理器,是英语“Central Processing Unit”的缩写.CPU从内存或缓存中取出指令,放入指令寄存器,并对指令译码分解成一系列的微操作,然后发出各种控制命令,执行微操作 ...

  6. VerilogHDL概述与数字IC设计流程学习笔记

    一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...

  7. sqlserver性能调优中的逻辑读,物理读,预读是什么意思

    表 'T_EPZ_INOUT_ENTRY_DETAIL'.扫描计数 1,逻辑读 4825 次,物理读 6 次,预读 19672 次.SQL SERVER 数据库引擎当遇到一个查询语句时,SQL SER ...

  8. Java编程的逻辑 (26) - 剖析包装类 (上)

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  9. matlab学习笔记10_3关系运算符和逻辑运算符

    一起来学matlab-matlab学习笔记10 10_3关系运算符和逻辑运算符 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰 ...

  10. Verilog代码和FPGA硬件的映射关系(一)

    代码和硬件之间的映射关系是一个很奇妙的过程,也展现出人类的智慧.单片机内部的硬件结构都是固定的,无法改变,我们通过代码操作着寄存器的读写,来执行各种复杂的任务.FPGA的硬件结构并不像单片机一样是固定 ...

随机推荐

  1. Hadoop Eclipse远程连接出现:Error:Call to /10.10.10.10:9000 failed on local exception: java.io.EOFException

    异常截图:

  2. EassyMock实践 自定义参数匹配器

    虽然easymock中提供了大量的方法来进行参数匹配,但是对于一些特殊场合比如参数是复杂对象而又不能简单的通过equals()方法来比较,这些现有的参数匹配器就无能为力了.easymock为此提供了I ...

  3. nginx upstream setting

    upstream proxy_1 { server 127.0.0.1:8080; #连接到上游服务器的最大并发空闲keepalive长连接数(默认是未设置,建议与Tomcat Connector中的 ...

  4. day9_python学习笔记_chapter12_模块

    1. 名称空间加载顺序: 首先加载内建名称空间,他由__builtin模块中的名字构成.然后加载执行模块的全局名称空间,他会在模块开始执行后变为活动名称空间.如 果在执行期间调用了一个函数,那么将创建 ...

  5. 关于jQuery中的$.grep()方法的使用

    数组筛选的方法,记录下,以加深印象. var ary = [1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1]; ary = $.grep(ary, functi ...

  6. CSS自学笔记(7):CSS定位

    很多时候,我们需要对一些元素进行自定义排序.布局等,这是就需要用到CSS的定位属性了,用这些属性对一些元素进行自定义排序.布局等操作,可以改变浏览器默认的死板的排序. CSS定位的功能很容易理解,它允 ...

  7. RedMine 版本管理工具

    一.介绍: Redmine 是一个开源的.基于Web的项目管理和缺陷跟踪工具.它用日历和甘特图辅助项目及进度可视化显示.同时它又支持多项目管理.Redmine是一个自由开放 源码软件解决方案,它提供集 ...

  8. javascript - 工作笔记 (事件绑定二)

    在上篇中的事件绑定方法,相信大家都看到过了. 不过这里有点小小的问题,这些方法,变量都是全局的,难免会与其他的库或者方法发生冲突而被覆盖,因此,我在这里做了小小的封装,如下:  JavaScript ...

  9. IIS应用程序池监控

    最近发现公司运行的web网站应用程序池会突然停止,做的负载均衡(路由负载)又无法监测到IIS应用程序池的情况,就想着通过某一种监控方式监测IIS应用程序池的情况,如果处关闭状态则立刻重新启动.所说的I ...

  10. LDAP Authentication for openNebula3.2

    LDAP Authentication 3.2 The LDAP Authentication addon permits users to have the same credentials as ...