您的位置: 翼速应用 > 业内知识 > Java > 正文

详细解析java中的&和&&之区别

在java中,&和&&的区别主要可分为两部分,如下所示:


1、&&运算符在运算时当第一个表达式的值为false时,就不会再计算第二个表达式;而&运算符则不管第一个表达式的值是否为真都会执行两个表达式。

2、&运算符可以用作位运算符,而&&运算符不可以。


详细解析java中的&和&&之区别


详细解析java中的&和&&之区别


不管是&&还是&,都是用来表示"与"的逻辑运算符,也就是and的意思。它们都是当两边的表达式都为true的时候,整个运算结果才为true,否则为false。不过,虽然他们两个都属于逻辑运算符,但&&又叫短路运算符,因为当第一个表达式的值为false的时候,则不会再计算第二个表达式;而&则不管第一个表达式是否为真都会执行两个表达式,另外&还可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位操作。


&& 操作


int i = 0;        
if(i == 3  && ++i > 0 )
 {
 }
System.out.println("i = " + i);


结果是:


i = 0


原因:第二个表达式没有执行。


& 操作


int i = 0;        
if(i == 3  & ++i > 0 )
 { 
 }
 System.out.println("i = " + i);


结果是:


i = 1


第二个表达式执行了。


扩展知识:逻辑运算符


逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。


逻辑运算符是对布尔型变量进行运算,其结果也是布尔型,具体如表 1 所示。


表1


|| 与 | 区别:如果 a 为 true,则不计算 b(因为不论 b 为何值,结果都为 true)


注意:短路与(&&)和短路或(||)能够采用最优化的计算方式,从而提高效率。在实际编程时,应该优先考虑使用短路与和短路或。


结果为 boolean 型的变量或表达式可以通过逻辑运算符结合成为逻辑表达式。逻辑运算符 &&、|| 和 !按表 2 进行逻辑运算。


表2


逻辑运算符的优先级为:!运算级别最高,&& 运算高于 || 运算。!运算符的优先级高于算术运算符,而 && 和 || 运算则低于关系运算符。结合方向是:逻辑非(单目运算符)具有右结合性,逻辑与和逻辑或(双目运算符)具有左结合性。


下面是一些使用逻辑运算符的示例。


x>0 && x<=100    // 第一行语句
y%4==0 || y%3==0    // 第二行语句
!(x>y)    // 第三行语句


其中,第一行语句用于判断 x 的值是否大于 0 且小于或等于 100,只有两个条件同时成立结果才为真(true)。第二行语句用于判断 y 的值是否能被 4 或者 3 整除,只要有一个条件成立,结果就为真(true)。第三行语句先比较 x 和 y,再将比较结果取反,即如果 x 大于 y 成立,则结果为假(false),否则为真(true)。


以上就是关于java中的&和&&区别的详细解析,翼速应用平台内有更多相关资讯,欢迎查阅!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题