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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 詹英鹏 黑马帝   /  2011-12-29 18:21  /  2428 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 詹英鹏 于 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中有吗?和&&有区别么?

2 个回复

倒序浏览
&和&&都可以用作逻辑与的运算符,表示逻辑与(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。

评分

参与人数 2技术分 +1 黑马币 +1 收起 理由
詹英鹏 + 1
吴上储 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 房宝彬 于 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, 就跳出当前循环,进行下一次循环。
}

评分

参与人数 2技术分 +1 黑马币 +1 收起 理由
詹英鹏 + 1
吴上储 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马