一、运算符
1.关系运算符
关系运算符,条件成立为真(1),条件不成立为假(0),结果不是1就是0
优先级、结合律:左结合
2.逻辑运算符(||或,&&与,!非)
||或:一真为真,同假为假。如果||表达式左边已经为真,则右边不执行
&&与:同真为真,一假为假&&只要左边为假,右边就不执行
!非:真变假,假变真
3.优先级顺序
小括号()>负号(-)> ! >算数运算符>关系运算符> && > ||
4.三目运算符
条件运算符:(真假判断表达式1)?(表达式2):(表达式3)
表达式1为真,执行表达式2,并返回表达式2的值
表达式1为假,执行表达式3,并返回表达式3的值
特点:三个位置为表达式,不仅仅是数值,但必须有运算结果,不能定义变量。
5.ASCII (美国标准信息交换码)
统一用8位二进制来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符,且规则一致,便于交流通信。
在把字符转换成数值时需要查看ASCII表中对应的值。
ASCII只用一个字节去表示字符,对于英文世界是足够,但对于中文是不够的,所以每个国家会根据自己的国情都会定义一个自己的字符编码。
在中国主要有以下两种:GBK2312:两个字节,16位,有65536种可能,中文基本够用。
UTF-8:三个字节,24位,有16777216种可能。
6.为什么自增运算符的优先级比逻辑运算符高,但是却不先计算自增运算呢?
这是编译器决定的,编译器在处理逻辑运算和自增自减组合运算时,会将自增自减运算放在最后判断是否执行。
7.逻辑运算的短路问题
||he &&组合运算时,编译器放弃优先级,从左往右扫描。
二、选择结构
1、if结构
if(){} if(){}else{} if(){}else if{} if(){}else if{}else{} if();
特点;一次if语句只能执行给出的所有操作中的一个。
if();这种用法时if语句只有紧跟后面一句有效,读到下一个;结束,且不能定义变量。
除了if();这种用法,所有的if()与{}之间不能有;号。
if(条件判断){}里面的条件判断如果是与常量的等于判断,则常量建议写在前面
2.switch语句
条件结果只能是整数,而case只能是整型常量。注意:case’a’
break可有可无,有则执行完跳出,没有则继续执行,直到遇到下一个break或执行完
default可有可无,有则如果条件都不满足,会执行这句,如果都不满足,执行结束。
case下面要定义变量必须加{},且case后的常量值不能重复。
switch语句可以全部用if语句替代,但if语句不能全用switch替代。
3.case下定义变量必须加花括号,否则报错,原因是作用域不能区分是对应case还是整个switch
switch结构中定义变量不加括号的情况,定义变量的语句上面有合法的语句。
4.continue和break
continue:跳出本次循环,执行下一次循环
break:跳出整个循环。
区别:break可以用于switch和while,do
while和for循环
continue不能用于switch
相同点:在break和continue相同作用域下,两者下面都不能放代码,因为不会执行,两者都是关键字。 |
|