Java基础07-10-基本运算符

Java基础07-基本运算符

运算符

java语言支持如下运算符

1、算术运算符:+,-,*,/,%(模运算,也是取余数),++,–

2、赋值运算符:=

3、关系运算符:>,<,>=,<=,==(java里面的等于是两个等号),!=(不等于),instance of

4、逻辑运算符:&&(与),||(或),!(非)

5、位运算符:&,|,^,~,>>,<<,>>> (了解!!!)

6、条件运算符:? :

7、扩展赋值运算符:+=,-=,*=,/=

代码示例

算术运算符(二元运算符)(除自增自减运算符)

1、加、减、乘、除的运算

//首先定义两个变量
int a = 10;
int b = 20;
//进行加减乘除运算,并输出
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);   //得到的结果是int类型,0.5最后被四舍五入,取0
System.out.println(a/(double)b);  //经过类型转换后,结果为0.5

在这里插入图片描述

2、模运算(取余)

int a=10;
int c=21;
 //取余,也叫做模运算
System.out.println(c%a);   //  c/a 等于  21/10 =2 .... 1

在这里插入图片描述

3、数据类型不一样的变量,如何加减,且输出形式是否发生改变

//定义变量
long a = 123123123123123L;
int b = 123;
short c = 10;
byte d = 8;
//结果输出
System.out.println(a+b+c+d);  //Long
System.out.println(b+c+d);  //Int
System.out.println(c+d);  //Int

在这里插入图片描述

结论

(1)如果四个数据类型中,一个为Long,那么结果类型也为Long。如果有一个是double类型,那么结果一定是double类型。

(2)如果没有Long类型,无论数据类型中是否含有Int类型,结果都为Int类型

关系运算符(二元运算符)

说明:关系运算符的返回结果一般有两种形式:正确 错误

​ 在java中一般用布尔值来表示

//定义变量
int a = 10;
int b = 20;
//关系运算符的使用及结果输出
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);

在这里插入图片描述

自增自减运算符(一元运算符)

1、定义:自增自减运算符 (++ --),只需要一个变量即可计算,因此也叫做一元运算符

2、运算符的解释

//a++  相等于 a = a + 1   //执行完这行代码后,先给b赋值,b就等于原来a的值,再自增
//++a  相等于 a = a + 1   //执行完这行代码后,先自增,再给c赋值。

3、代码应用

//定义变量
int a = 3;
//自增自减运算符的使用
int b = a++;   //a++  相等于 a = a + 1   //执行完这行代码后,先给b赋值,b就等于原来a的值,再自增
System.out.println(a);   //a++执行完之后,a才会在原来的值加1
        
int c = ++a;  //++a  相等于 a = a + 1   //执行完这行代码后,先自增,再给c赋值。
//结果输出
System.out.println(a);
System.out.println(b);
System.out.println(c);

在这里插入图片描述

幂运算

1、说明:幂运算使用Math工具类来操作,很多运算,我们也会使用工具类来操作!

​ //Math类提供了很多科学的计算方法

2、代码示例:

//如果计算2^3   2*2*2=8   
double pow = Math.pow(2, 3);
//结果输出
System.out.println(pow);

在这里插入图片描述

逻辑运算符

1、逻辑运算符

(1)、定义:&&与(and) ||或(or) ! 非(取反)

(2)、说明:逻辑运算:两个变量都为真,结果才为真true

​ 逻辑运算:两个变量有一个为真,结果才为真true

​ 逻辑运算: 如果是真,则变为假,如果是假,则变为真

(3)代码:

//变量定义
boolean a = true;
boolean b = false;
//结果输出
System.out.println("a && b:"+(a&&b));   
System.out.println("a || b:"+(a||b));   
System.out.println("! (a && b):"+!(a&&b));  

在这里插入图片描述

2、短路运算

(1)、介绍:指的是在逻辑与运算中,如果第一个括号内的运算本身是假的,那么则直接返回假,并不会执行第二括号里的命令

(2)、代码验证:

//下面的例子则说明了,若执行了第二个括号,则C返回的会是6,而非5
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);

在这里插入图片描述

位运算符

(1)、说明:也是“与或非”的运算,是和二进制有关的运算

​ 位运算直接和二进制打交道,所以效率非常高!!!!

(2)、实例说明:

/*
  A = 0011 1100
  B = 0000 1101
-----------------------------------------------------------------------
 与 A&B :如果A和B上下相对两个数值(每一位)都是1,则为1,否则为0。 这是根据位的运算
        此时结果为  A&B=0000 1100
 或 A/B  :如果A和B对应位都是0,则结果为0,否则为1
        此时结果为:A/B=0011 1101
 抑或 A^B :如果A和B对应位的值相同,则为0,否则为1
        此时结果为:A^B=0011 0011
 取反 ~B: 对B每一位的值取反
        此时结果为  1111 0010
 */

(3)、与位运算有关的常见面试题

//题目:2*8如何计算最快?
//解析:2*8=16   可以改写成   2*2*2*2
//两个位运算符的定义:<<  >> 左移  右移
                   <<左移   相当于对数字*2
                   >>右移   相当于对数字/2
//采用位运算计算上面的题目
        System.out.println(2<<3);
/*在二进制中
 0000 0000  0
 0000 0001  1
 0000 0010  2   2往左移一位变为4
 0000 0011  3
 0000 0100  4   4往左移一位变为8
 0000 1000  8   8往左移一位变为16
 0001 1000  16
   */
扩展赋值运算符

1、说明:

a+=b;  //a=a+b
a-=b;  //a=a-b

2、代码:

//变量定义
int a = 10;
int b = 20;

//扩展赋值运算符
a+=b;  //a=a+b
a-=b;  //a=a-b

//结果输出
System.out.println(a);

在这里插入图片描述

字符串连接符

1、说明:+

2、如果+的前面出现字符串String类型,那么就会把后面的操作处都转换成String类型并进行连接

3、代码

//字符串连接符 +    如果+的前面出现字符串String类型,那么就会把后面的操作处都转换成String类型并进行连接
System.out.println(a+b);
System.out.println(""+a+b);  //""代表空的字符串

在这里插入图片描述

4、面试题

//面试题:下面两个有什么区别?
//如果String在前面,则把后面的当作字符串,如果String类型在后面,则前面的仍然进行计算。
System.out.println(""+a+b);
System.out.println(a+b+"");

在这里插入图片描述

结论:(1)、如果+的前面出现字符串String类型,那么就会把后面的操作处都转换成String类型并进行连接

​ (2)、如果String在前面,则把后面的当作字符串,如果String类型在后面,则前面的仍然进行计算。

三元运算符(条件运算符)

1、说明:

x  ?  y   :  z
//如果x==true,则结果为y,否则,结果为z

2、代码

int score = 80;
String type = score <60 ?"不及格":"及格";  //必须掌握
System.out.println(type);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值