黑马程序员技术交流社区

标题: 看了几天视频,这种练习题感觉好难看得懂,唉 [打印本页]

作者: ccsd999    时间: 2015-4-21 08:12
标题: 看了几天视频,这种练习题感觉好难看得懂,唉
第一题

int x = 1,y=1;

if(x++==2 & ++y==2)
{
    x =7;
}
System.out.println("x="+x+",y="+y);


---------------------------------------------------
第二题
int x = 1,y = 1;

if(x++==2 && ++y==2)
{
    x =7;
}
System.out.println("x="+x+",y="+y);

---------------------------------------------------

第三题
int x = 1,y = 1;

if(x++==1 | ++y==1)
{
    x =7;
}
System.out.println("x="+x+",y="+y);


---------------------------------------------------

第四题
int x = 1,y = 1;

if(x++==1 || ++y==1)
{
    x =7;
}
System.out.println("x="+x+",y="+y);



---------------------------------------------------
第五题
boolean b = true;

if(b=false)  //如果写成if(b=false)有结果吗?如果有,结果是?
    System.out.println("a");
else if(b)
    System.out.println("b");
else if(!b)
    System.out.println("c");
else
    System.out.println("d");
   
//b
if(b=false)
//c
---------------------------------------------------

第六题
int x = 2,y=3;

switch(x)
{
    default:
        y++;
    case 3:
        y++;
    case 4:
        y++;
}

作者: 夕颜    时间: 2015-4-21 09:06
本帖最后由 夕颜 于 2015-4-21 09:33 编辑

a++和++a,a的值都是一样的,都是在a的原有值上加1,不同点是在赋值,比如b=a++和b=++a,前者b的值为a的原有值,而后者b等于a的原有值加1,而a的值都是在原有值上加1,形象的说就是,前者是先去玩回来再吃饭,后者是先吃饭再出去玩。&和&&的区别:&无论左边表达式的结果为true或false,都要对右边表达式进行运算,而&&,只有左边为true才对右边的表达式进行计算。
if(x++ == 2 && ++y == 2){执行语句;},意思就是,只有当两个表达式的结果都为true才执行大括号里的“{}”执行语句。判断是否执行大括号里的执行语句的顺序:先判断x++==2是否为true,如果为true才判断++y==2的值。
|和||的区别:|,无论左边为true还是false,都要对右边表达式的值进行判断;||,只有左边表达式为false,才对右边的表达式的值进行判断。
if(条件表达式){执行语句}、else if(条件表达式){执行语句}:只有条件表达式的值为true才执行大括号里的执行语句,第5题:if(b=false):
相当于你给b赋值为false,所以不执行if下的执行语句,else if(b):b的值为false,所以不执行,else if(!b):因为b为false,所以!b==true,所以执行“System.out.println("c");”,else的语句,当上门的if、else if都不满足于时才执行。所以输出的结果为:c;
switch语句的特点:先匹配第一个case,不满足再匹配第二个,所有的case都不满足执行default的下面的执行语句。switch语句的结束方式由两种:遇到break和“}”,如果default在前面,而且default下没有break,所有case都不匹配时,先执行default下的执行语句,再把能执行的语句都执行一次,知道遇到break,或者“}”。你的第六题,没有break,x的值为2,所以所有的case都不匹配,执行default,default没有break,所以接着执行能执行的语句,所以执行结束,你的y值为:6.
这是我的理解,希望能帮到你

作者: cyr    时间: 2015-4-21 09:14
基础没打牢的缘故吧,这里的知识点在视频都有提到的。看了老毕前三天的视频就能解出答案的。好好翻看一下视频的。
作者: 忘言    时间: 2015-4-21 10:07
楼主慢慢来,莫急~
作者: 一诺珍惜    时间: 2015-4-21 10:09
冲哥让潘大神教你
作者: WYKings    时间: 2015-4-21 10:09
相对于后面的额,我只能说好简单好简单。。。
作者: 只吃饭不洗碗    时间: 2015-4-21 11:40
是啊 相对于后面的 真的是太简单了 前面的 看看视频练练就行了 后面的就不仅仅是这样了 加油吧
作者: 巴银    时间: 2015-4-21 12:02
不要着急啊,都是一步一步来的,都是基础,多测试一下就行了
作者: 1017161726    时间: 2015-4-21 13:09
这题目好,有技术含量。


作者: 1017161726    时间: 2015-4-21 13:12
第五题,谢村了,少了一个等号。
作者: ccsd999    时间: 2015-4-21 15:59
夕颜 发表于 2015-4-21 09:06
a++和++a,a的值都是一样的,都是在a的原有值上加1,不同点是在赋值,比如b=a++和b=++a,前者b的值为a的原 ...

谢谢讲解
作者: zhangjnia    时间: 2015-4-21 16:01
没事,刚开始都这样,慢慢就会觉得这些起始没什么
作者: 夕颜    时间: 2015-4-21 17:32
ccsd999 发表于 2015-4-21 15:59
谢谢讲解

:P不客气
作者: 刘辉林    时间: 2015-4-21 20:53
慢慢来,把基础学好。。
作者: 乘梦而飞    时间: 2015-4-21 21:00
多看 多敲 慢慢就会明白
作者: 毛守锐    时间: 2015-4-21 21:20
夕颜 发表于 2015-4-21 09:06
a++和++a,a的值都是一样的,都是在a的原有值上加1,不同点是在赋值,比如b=a++和b=++a,前者b的值为a的原 ...

自古英雄出二楼啊  写的真的很好很详细
作者: 理当如此    时间: 2015-4-21 21:30
这些题目的难点,就是看你能否区别&和&&,单&时,左边表达式不论是否真假右边都参与运算,双&时,左边为表达式为假时右边不参与运算。另外一个难点就是区分++i 和i++,当++在i前面时,是先自增再参与运算,++在i后面时,是先参与运算再自增。只要理解了这2个知识点,这些题目都会变得非常简单
作者: 夕颜    时间: 2015-4-21 21:33
毛守锐 发表于 2015-4-21 21:20
自古英雄出二楼啊  写的真的很好很详细

天下英雄唯有刘备与曹操;P
作者: 18561271203    时间: 2015-4-21 21:43
主要考你 短路与和短路或,搞明白就不难
作者: Grady    时间: 2015-4-21 21:46
楼主不要着急,慢慢来。加油
作者: caotierong    时间: 2015-4-21 21:52
刚开始都一样,反正记住一点,总有一天这些我都会的!要以这样的心态去学JAVA
作者: itheima_llt    时间: 2015-4-21 23:39
谢谢您,顶
作者: ccsd999    时间: 2015-4-22 18:55
cyr 发表于 2015-4-21 09:14
基础没打牢的缘故吧,这里的知识点在视频都有提到的。看了老毕前三天的视频就能解出答案的。好好翻看一下视 ...

是啊,基础不好,要好好加油了
作者: ccsd999    时间: 2015-4-22 18:56
caotierong 发表于 2015-4-21 21:52
刚开始都一样,反正记住一点,总有一天这些我都会的!要以这样的心态去学JAVA ...

好的,谢谢鼓励,一起加油!!
作者: ccsd999    时间: 2015-4-22 18:57
itheima_llt 发表于 2015-4-21 23:39
谢谢您,顶

谢谢~~~你的技术分好多的说
作者: 毛守锐    时间: 2015-4-22 21:28
夕颜 发表于 2015-4-21 21:33
天下英雄唯有刘备与曹操

:D你想说你是备呢 还是操呢
作者: 夕颜    时间: 2015-4-22 21:52
毛守锐 发表于 2015-4-22 21:28
你想说你是备呢 还是操呢

我是屌丝,不敢跟他们相提并论
作者: duzhi409    时间: 2015-4-22 22:45
学习学习
作者: 黄文昭    时间: 2015-4-23 00:13
运算符优先级问题,可以自己加括号划分再来运算!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2