A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

第一题

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++;
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

28 个回复

倒序浏览
本帖最后由 夕颜 于 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.
这是我的理解,希望能帮到你
回复 使用道具 举报 1 0
基础没打牢的缘故吧,这里的知识点在视频都有提到的。看了老毕前三天的视频就能解出答案的。好好翻看一下视频的。
回复 使用道具 举报
楼主慢慢来,莫急~
回复 使用道具 举报
冲哥让潘大神教你
回复 使用道具 举报
相对于后面的额,我只能说好简单好简单。。。
回复 使用道具 举报
是啊 相对于后面的 真的是太简单了 前面的 看看视频练练就行了 后面的就不仅仅是这样了 加油吧
回复 使用道具 举报
巴银 中级黑马 2015-4-21 12:02:59
8#
不要着急啊,都是一步一步来的,都是基础,多测试一下就行了
回复 使用道具 举报
这题目好,有技术含量。

回复 使用道具 举报
第五题,谢村了,少了一个等号。
回复 使用道具 举报
夕颜 发表于 2015-4-21 09:06
a++和++a,a的值都是一样的,都是在a的原有值上加1,不同点是在赋值,比如b=a++和b=++a,前者b的值为a的原 ...

谢谢讲解
回复 使用道具 举报
没事,刚开始都这样,慢慢就会觉得这些起始没什么
回复 使用道具 举报

:P不客气
回复 使用道具 举报
慢慢来,把基础学好。。
回复 使用道具 举报
多看 多敲 慢慢就会明白
回复 使用道具 举报
夕颜 发表于 2015-4-21 09:06
a++和++a,a的值都是一样的,都是在a的原有值上加1,不同点是在赋值,比如b=a++和b=++a,前者b的值为a的原 ...

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

天下英雄唯有刘备与曹操;P
回复 使用道具 举报
主要考你 短路与和短路或,搞明白就不难
回复 使用道具 举报
Grady 中级黑马 2015-4-21 21:46:47
20#
楼主不要着急,慢慢来。加油
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马