实训第三天

来源:互联网 发布:java字符串拷贝到数组 编辑:程序博客网 时间:2024/06/10 13:52

今天的内容很少,老师讲的很细。给我留下深刻印象的有一下内容:

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;

自减与自增的的理解是相同的。