黑马程序员技术交流社区
标题:
自己学习心得
[打印本页]
作者:
杨胜男
时间:
2014-6-6 14:11
标题:
自己学习心得
本帖最后由 杨胜男 于 2014-6-8 11:40 编辑
第一题
int x = 1,y=1;
if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);//x=2,y=2
1.先判断if语句中的内容:x++==2;x先和2对比,再自增。int x=1,所以(x++==2)值为false,这时x的值为2。
2.再判断++y==2; y的值先自增,再和2对比。++y==2为true,y的值为2。
3.false & true值为false,所以不执行if{}语句。直接打印x和y的值。
4.结果x=2,y=2
---------------------------------------------------
第二题
int x = 1,y = 1;
if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);//x=2,y=1
1.先判断if语句中的内容:x++==2;x先和2对比,再自增。int x=1,所以(x++==2)值为false,这时x的值为2。
2.由于是&&运算。只要左边为false,右边就不再执行。(++y==2)没有执行到。所以y的值还是1
3.所以直接打印x和y的值
4.结果x=2,y=1
---------------------------------------------------
第三题
int x = 1,y = 1;
if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);x=7,y=2
1.先判断if语句中的内容:x++==2;x先和2对比,再自增。int x=1,所以(x++==2)值为true,这时x的值为2。
2.再判断++y==1; y的值先自增,再和1对比。++y==1为false,y的值为2。
3.true | false值为true
4.所以执行{x=7;}
5.结果x=7,y=2
---------------------------------------------------
第四题
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);//x=7,y=1
1.先判断if语句中的内容:x++==2;x先和2对比,再自增。int x=1,所以(x++==2)值为true,这时x的值为2。
2.由于是||运算,只要左边为真,表达式的值就为真,右边不参与运算。++y==1不执行,y的值为1.
3.所以执行{x=7;}
4.结果x=7,y=1
---------------------------------------------------
第五题
int x = 2,y=3;
switch(x)
{
default:
y++;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);//y=6
switch(x)语句中如果有与之对应的case值就执行该case语句,一直执行到break或大括号结束。没有与之对应的case值那就执行default语句,直到执行到break或大括号结束。
x=2,没有与之对应的case值,所以从default:开始语句执行,y=3,y++;y的值为4。没有break,继续往下执行
case 3: y++; y的值为5.
case 4:y++;y的值为6。
作者:
谭荣强
时间:
2014-6-8 05:37
nice。。。。
作者:
我为你着迷
时间:
2014-6-8 08:40
你好 x++==2;你这样写在语法上没有错误吗? 如果是正确的话 你这几个题还是很有代表性的
作者:
Asura
时间:
2014-6-8 08:47
顶一下!
作者:
IStudying
时间:
2014-6-8 09:36
赞一个。。。
作者:
上杉
时间:
2014-6-8 10:08
很有扩展性啊!!!!
作者:
江祖贇
时间:
2014-6-8 10:52
比较性 很强啊 差点忘了&& 运算符 一0为0的用处了 左为0右不行。
作者:
pk49800
时间:
2014-6-8 11:41
比较好的逻辑与或和短路与或还有switch语句的例子
作者:
我为你着迷
时间:
2014-6-8 12:02
自己DOS命令行试了下 是可以运行的 为你赞 哈哈
作者:
黄宝宝
时间:
2014-6-8 12:11
请问这样提问能得到技术分吗?
作者:
妖精斩月
时间:
2014-6-8 21:00
看不懂啊
作者:
sun_jun
时间:
2014-6-9 13:17
好贴呀!
作者:
会说话的木头
时间:
2014-6-9 13:23
第三题有错误 int x = 1,y = 1; if(x++==1 | ++y==1) { x =7; } System.out.println("x="+x+",y="+y);x=7,y=2 1.先判断if语句中的内容:x++==2;x先和2对比,再自增。int x=1,所以(x++==2)值为true,这时x的值为2。 2.再判断++y==1; y的值先自增,再和1对比。++y==1为false,y的值为2。 3.true | false值为true 4.所以执行{x=7;} 5.结果x=7,y=2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2