黑马程序员技术交流社区
标题:
这些语句和知识点你都掌握了吗?来看看吧!
[打印本页]
作者:
2119391569
时间:
2015-5-2 19:14
标题:
这些语句和知识点你都掌握了吗?来看看吧!
/**
需求:关于if语句中使用x++,逻辑运算符时出现的一些问题。
*/
//第一题
class Demo1//定义一个类
{
//主函数
public static void main(String[] args)
{
int x=1,y=1;
/*
括号中的x先出去和2比较,结果为假,而后自增(这里涉及x++先自增后自增的问题)
括号中的y先自增1,在和2比较,结果为真
false&true=false。
*/
if(x++==2 & ++y==2)
{
//false&true=false,所以这个语句不会执行
x=7;
}
System.out.println("x="+x+",y="+y);//x=2,y=2
}
}
class Demo2
{
public static void main(String[] args)
{
int x=1,y=1;
/*
括号中的x先出去和2比较,结果为假,而后自增,这时&&就短路了,所以不读右边
y的值不变为1
*/
if(x++==2 && ++y==2)
{
x=7;
}
System.out.println("x="+x+",y="+y);//x=2,y=1
}
}
class Demo3
{
public static void main(String[] args)
{
int x=1,y=1;
/*
括号中的x先出去和1比较,结果为真,而后自增值为2
括号中的y先自增在出去和1比较,结果为假
“|”特点:一边为真,结果为真
这时if的执行语句执行,x值为7
*/
if(x++==1 | ++y==1)
{
x=7;
}
System.out.println("x="+x+",y="+y);//x=7,y=2
}
}
class Demo4
{
public static void main(String[] args)
{
int x=1,y=1;
/*
括号中的x先出去和1比较,结果为真,然后在自增,值为2
“||”特点:当左边为true,右边不运算
这时if执行语句运行x值为7
*/
if(x++==1 || ++y==1)
{
x=7;
}
System.out.println("x="+x+",y="+y);//x=7,y=1
}
}
复制代码
作者:
fanxia_2007
时间:
2015-5-2 20:01
点评的很详细,条件判断句在这里集中体现了。
作者:
时光匆匆
时间:
2015-5-2 23:09
双&&还是有区别的,毕竟后面的不执行了。
作者:
jing3133920
时间:
2015-5-2 23:13
恩,这是一个容易让人混淆的点
作者:
只吃饭不洗碗
时间:
2015-5-2 23:16
收藏了
作者:
zlsucceed
时间:
2015-6-5 16:17
还在基础中,没看懂,继续努力;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2