今天的内容很少,老师讲的很细。给我留下深刻印象的有一下内容:
if-else 语句(建议不用else,难以控制)
&&与&、|与||的区别:
if (expre1 && expre2) express;
只有expre1和expre2同时为true,才执行express;
只要expre1为false,就不需要判断expre2;
if (expre1 & expre2) express;
只有expre1和expre2同时为true,才执行express;
就算expre1为false,还要判断expre2;
if (expre1 || expre2) express;
只有expre1和expre2同时为false,才不执行express;
只要expre1为true,不需要判断expre2就执行express;
if (expre1 | expre2) express;
只有expre1和expre2同时为false,才不执行express;
即使expre1为false,还需要判断expre2,,才执行express;
用几个特例来解释:
int a=1,b=5;
if(a==0 & ++b>5)
a=a+b; //a==0是false,但是还要执行++b,b的值是6,6大于5是true,不执行a=a+b
int a=2,b=6;
if(a==0|++b>6) // a==0是false,但是还要执行++b,b的值是7,7大于6是true,执行a=a+b,即a=9
a=a+b
关于自增和自减的运算,这是很蛋疼事情,能理解,很难解释清楚,以后避免这样写(必须掌握,这是一种思想,hr很喜欢这样的问题)
必须明确一点,自增和自减都是单目运算符,结合方向是从右向左
int a=1,b;
a++; //相当于a=a+1,a=2
b=a++; //b=1,a=2
b=++a; //b=2,a=2
b=(a++)+(++a)详解:把整个表达式看成两个部分,a++部分的值是1,此时a=2;在计算++a的部分,此时你这样写就清晰了a=a+1,此部分的值是3,此刻a=3;把两个部分的值加起来,则b=4;
自减与自增的的理解是相同的。