黑马程序员技术交流社区
标题:
关于&,&&和and的用法疑问
[打印本页]
作者:
詹英鹏
时间:
2011-12-29 18:21
标题:
关于&,&&和and的用法疑问
本帖最后由 詹英鹏 于 2011-12-29 21:08 编辑
首先我知道 & 表示“与”运算 还有“&&”也表示“与”
比如 12 & 23 ,他是表示二进制“与”运算
但是这个句子怎么回事
for(..;..;..)
{
if(i==0 && j==0)
{
System.out.println("非法数值")
}
else continue;
}
这局代码中的 “&” 这么理解啊 ?
还有一个 把代码中的 “&&” 改成”&“ 为什么也行啊,
“&”不是位与运算啊
还有一个 我发现如果直接用”&&“代替”&“,这样
int i=13 && 14;
System.out.println(i);就报错
他们到底是不是一样啊,很郁闷弄半天没明白 希望帮我解答一下 最好是弄个简单的例子
哦,还有这个关键and在java中有吗?和&&有区别么?
作者:
李爱霞
时间:
2011-12-29 18:32
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长
i=1;
j=1;
if(i++ <0&j++>0){
}
System.out.println(j);
i=0;
j=1;
if(i++ <0&&j++>0){
}
System.out.println(j);
此外
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
作者:
房宝彬
时间:
2011-12-29 18:41
本帖最后由 房宝彬 于 2011-12-29 18:42 编辑
你这问题问的真多,我给你个建议你还是在看看视频吧,我给你解答这个问题
for(..;..;..) 这是一个无限循环,
{
if(i==0 && j==0) 这是一个判断,在无限循环里必须要有判断,否则你CPU就冒烟了,哈哈 &&这个意思是两边结果都是true结果才是true,有一个结果为false那结果就
是false
{
System.out.println("非法数值") 这就是判断if表达式里是true 还是false,是true的话就执行,不是的话就不执行,。
}
else continue; 这里表示,如果if判断结果为false, 就跳出当前循环,进行下一次循环。
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2