c课件表达式语句和运算符.ppt
文本预览下载声明
或运算 ||:连接2个表达式(通常关系表达式)时,只要当2个表达式中有1个为true时,整个表达式结果为true,否则结果为false 。 if((x==5) || (y==5) ) { … } -*- 非运算 !:为单目运算符,对紧跟其后的表达式(通常为关系表达式)求反,若原表达式的结果为false时,整个表达式结果为true,否则结果为false。 if( !(grade70) ) // if( grade=70 ) { … } -*- 逻辑运算规则总结 a b ab a||b !a 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 再论优先级与结合性 综合考虑逻辑运算、关系运算、赋值运算(由高到低的优先级顺序) !→关系运算符→和||→赋值运算符 !和赋值运算符的结合性为从右向左 其它运算符的结合性为从左向右 if( x5 y5 ||z5 ) if( x5 ( y5 || z5) ) -*- 在复杂表达式,记住使用括号清晰表达计算顺序。 编程的目的是正确实现功能,并且让其易于理解。 特殊的逻辑值 除了关系和逻辑表达式,其它表达式也可用于if语句的条件判断中。 C++规定,用做条件判断时,0视为false,其它值均视为true(包括正数、负数和非0小数) if(zombies) std::coutzombies“ zombies left\n”; if(zombies!=0) std::coutzombies“ zombies left\n”; -*- 2条语句完全等价,但第2种写法更加清晰,应养成良好习惯。 计算个人所得税 个人的工资为sal,则所得税tax为 0 sal≤3500 tax= (sal-3500)*0.03 3500<sal≤5000 (sal-5000)*0.1+45 5000<sal≤8000 (sal-8000)*0.2+345 sal 8000 计算个人所得税代码 int main() { float sal,tax; std::coutInput your salary: “; std::cinsal; if(sal=3500) tax=0; else if(sal=5000) tax=(sal -3500)*0.03; else if(sal8000) tax=45+(sal -5000)*0.1; else tax=345+(sal-8000)*0.2; std::cout“Your tax: “ tax“\n”; return 0; } 典型错误 int main() { float sal,tax; std::coutInput your salary: “; std::cinsal; if(sal=3500) tax=0; else if(3500sal=5000) tax=(sal -3500)*0.03; else if(sal8000) tax=45+(sal -5000)*0.1; else tax=345+(sal-8000)*0.2; std::cout“Your tax: “ tax“\n”; return 0; } X 3500sal=5000,先计算 3500sal,结果为1或0, 结果与5000比较,当然 结果为真。 良好编码风格的小结 1行只写1条语句; 正确缩进并统一风格; 适当的注释; 使用符号常量; 统一风格和具有语义表达的函数或变量命名; 分支结构处使用复合语句(尽管只有1条语句); 使用括号明确复杂表达式的计算顺序; …… -*- * * * * * * * * * -*- 本章内容安排 语句 表达式 运算符 if-else语句 -*- 语句 除了预处理编译指令,C++程序由语句构成 语句是以分号结尾的指令。 可以在1行上放置多条语句(必须要以分号结束),但通常只在1行上放1条语句。 语句控制程序的执行流程、计算表达式、也可以什么也不干(空语句)。 x = a + b; -*- 空白 C++源代码中,空格、制表符和换行符统称为空白,空白是为了方便程序员阅读代码,编译器忽略空白。 下面的3条语句等价 x=a+b; x = a + b ; x = a+b; 编译器忽略空白,但标识符中间不能包含空格。 用于代码缩进的制表符和空格属于空白,良好和一致的缩进 有助于识别程序块和
显示全部