零基础学Java(3)运算符[通俗易懂]

零基础学Java(3)运算符[通俗易懂]运算符运算符用于连接值。Java提供了一组丰富的算术和逻辑运算符以及数学函数。算术运算符在Java中,使用算术运算符+、-、*、/表示加、减、乘、除运算。当参与/运算的两个操作数都是整数时,表示

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

运算符

运算符用于连接值。Java提供了一组丰富的算术和逻辑运算符以及数学函数。
 

算术运算符

在Java中,使用算术运算符+、-、*、/表示加、减、乘、除运算。当参与/运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。整数的求余操作用%表示。例如,15/2=7,15%2=1,15.0/2=7.5
需要注意,整数被0除将虎产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。
 

数学函数与常量

在Math类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。
要想计算一个数值的平方根,可以是一个sqrt方法

public class FirstSample {
    public static void main(String[] args) {
        double x = 4;
        double y = Math.sqrt(x);
        System.out.println(y);  // 打印结果2.0
    }
}

在Java中,没有幂运算,因此需要借助于Math类的pow方法

double y = Math.pow(x, a)

将y的值设置为x的a次幂。pow方法有两个double类型的参数,其返回结果也为double类型
 

数值类型之间的转换

我们经常需要将一种数值类型转换为另一种数值类型。下图给出了数值类型之间的合法转换
零基础学Java(3)运算符[通俗易懂]
图中有6个实现箭头,表示无信息丢失的转换;另外有3个虚线箭头,表示可能有精度损失的转换。例如,123456789是一个大整数,它所包含的位数比float类型所能够表示的位数多。当将这个整数转换为float类型时,将会得到正确的大小,但是会损失一些精度。

public class FirstSample {
    public static void main(String[] args) {
        int n = 123456789;
        float f = n;
        System.out.println(f);
    }
}

输出结果

1.23456792E8

当用一个二元运算符连接两个值时(例如n+f,n是整数,f是浮点数),先要将两个操作数转换为同一种类型,然后再进行计算。

  • 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。
  • 否则,如果其中一个操作数是float类型,另一个操作数将会转换为float类型。
  • 否则,如果其中一个操作数是long类型,另一个操作数将转换为long类型。
  • 否则,两个操作数都将被转换为int类型
     

强制类型转换

在Java中,允许进行这种数值之间的类型转换,当然,有可能会丢失一些信息。这种可能损失信息的转换要通过强制类型转换来完成。强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。例如:

double x = 8.997;
int nx = (int) x;

这样,变量nx的值为8,因为强制类型转换通过截断小数部分将浮点值转换为整型。
如果想对浮点数进行舍入运算,以便得到最接近的整数(在很多情况下,这种操作更有用),那就需要使用Math.round方法:

double x = 8.997;
int nx = (int) Math.round(x);

现在,变量nx的值为10。当调用round的时候,仍然需要使用强制类型转换(int)。其原因是round方法返回的结果为long类型,由于存在信息丢失的可能性,所以只有使用显式的强制类型转换才能够将long类型转换成int类型。
 

结合赋值和运算符

可以在赋值中使用二元运算符,这是一种很方便的简写形式。例如

x += 4;

等价于:

x = x + 4;

 

自增与自减运算符

程序员都知道加1,减1是数值变量最常见的操作。在Java中也有:n++将变量n的当前值加1,n–则将n的值减1.++在前会先完成加1;++在后会使用变量原来的值。
 

关系和boolean运算符

Java包含丰富的关系运算符

  • 相等使用两个等号==
  • 不相等使用!=
  • &&表示逻辑与运算符
  • ||表示逻辑或运算符

注意:&&和||运算符,如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了

最后,Java支持三元操作符?:,这个操作符很有用。如果条件为true,下面的表达式

condition? expression1: expression2

就为第一个表达式的值,否则计算为第二个表达式的值。例如

x < y ? x: y

会返回x和y中较小的一个。
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166040.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Custom Mutator Fuzz】简单Protobuf使用练习

    【Custom Mutator Fuzz】简单Protobuf使用练习前面两篇文章中已经讲解了protobuf的结构以及生成代码的分析,这篇文章简单的介绍一下protobuf的使用。这里主要跟着libprotobuf-mutator_fuzzing_learning项目进行结构感知模糊测试练习

    2022年9月3日
    3
  • ov7725摄像头人脸识别_ov7725摄像头

    ov7725摄像头人脸识别_ov7725摄像头OV7725摄像头软件实现简单的二值化处理项目使用的摄像头型号:​ 正点原子OV7725摄像头模块,带FIFO的摄像头模块。图像二值化化的个人见解:​ 常见的图片格式:​ 黑白图片、灰度图片、彩色图片。不同的图片的格式类型主要的不同点在每个像素点需要几位的二位数来表示。黑白图片每个像素不是0就是1,0代表黑颜色,1代表白颜色。灰度图像每个像素需要一个字节表示(8位二进制)每个像素可以量化…

    2022年9月2日
    3
  • Java程序员是不是已经烂大街了?「建议收藏」

    Java程序员是不是已经烂大街了?「建议收藏」宽进严出,有人看一看面试题都可以混水摸鱼进去,进去容易,坚持下来的人很少,大部分都是代码搬运工,这些人其实不是严格的JAVA程序员,非常容易转到其他方面,比如做前端、测试、运维、产品、运营。能够坚持做5年以上JAVA开发的人不多。真正JAVA开发人员很缺,JAVA代码搬运工很多。这位网友说:中级程序员,高级程序员那就更缺了“烂大街”我可以认为是褒奖吧,行业在发展,从…

    2022年7月8日
    104
  • 等价类划分法设计测试用例例题_有效等价类测试用例

    等价类划分法设计测试用例例题_有效等价类测试用例等价类划分法设计测试用例

    2022年10月18日
    0
  • ExaGrid获得+73的净推荐值

    ExaGrid获得+73的净推荐值根据NPS标准,此分数值被归为“优秀”马萨诸塞州韦斯特伯鲁–(美国商业资讯)–备份用超融合二级存储器领先供应商ExaGrid®今日宣布,在近日开展的净推荐值(NPS)调查中,该公司的NPS为+73。NPS客户忠诚度指标用于测评现有客户向同行推荐供应商产品或服务的可能性。得到的NPS分数可能低至-100或高达+100。ExaGrid的大多数竞争对手的NPS介于+10和+20之间,而Exa…

    2022年6月6日
    27
  • 普通索引和唯一索引的区别b+tree_两个字段建立唯一索引

    普通索引和唯一索引的区别b+tree_两个字段建立唯一索引转自:https://blog.csdn.net/u014071328/article/details/78780683唯一索引和普通索引使用的结构都是B-tree,执行时间复杂度都是O(logn)。1、普通索引  普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDER…

    2022年9月15日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号