(10)Java基础语法 --运算符

目录

运算符

一、运算符概述

二、常用的运算符

1、算数运算符

2、赋值运算符

3、关系运算符(比较运算符、条件运算符、判断运算符)

4、逻辑运算符

5、三元运算符


运算符

一、运算符概述

对常量和变量进行操作的符号称为运算符。

二、常用的运算符

1、算数运算符

      1.1 算数运算符的概念

运算符

运算规则

范例

结果

+

正号

+3

3

+

2+3

5

+

连接字符串

“中”+“国”

“中国”

-

负号

int a=3; -a

-3

-

3-1

2

*

2*3

6

/

5/2

2

%

取模(取余)

5%2

1

++

自增

int a=1; a++ / ++a

2

--

自减

int b=3; b-- / --b

2

      1.2 自增++ 和自减 --

            ++ 运算,变量自己增长1

            --   运算,变量自己减少1

            1.2.1 独立运算:

                  变量前++ ,例如 ++i

                  变量后++ ,例如 i++

public static void main(String[] args) {
		int a = 1;
		a++;
		System.out.println(a);    // 2
		++a;
		System.out.println(a);    // 3
}

            1.2.2 和其他变量放在一起运算       

public static void main(String[] args) {
		int a = 1;
		//int b = ++a;    // a:2 b:2 注意:++在前表示先计算++  再赋值
		int b = a++;    // a:2 b:1 注意:++在后表示先赋值  再计算++
		System.out.println(a);
		System.out.println(b);
}

      1.3 练习

            取出一个整数的千位上的数

int x = 321345;//取出千位上的数
int qian = x/1000%10;

            浮点数 取出整数部分,取出小数部分

double x = 3.1415;
int zhenShu = (int)x;
System.out.println(zhenShu);  // 3
double xiaoShu = x - zhenShu;
System.out.println(xiaoShu);    // 0.1415

2、赋值运算符

      2.1 赋值运算符的概念

            将符号右边的值,赋给左边的变量。

            注意:  =左边一定是个变量, 右边有可能是变量也有可能是常量;

运算符

运算规则

范例

结果

=

赋值

int a=2  

2

+=

加后赋值

int a=2,a+=2

4

-=

减后赋值

int a=2,a-=2

0

*=

乘后赋值

int a=2,a*=2

4

/=

整除后赋值

int a=2,a/=2

1

%=

取模后赋值

int a=2,a%=2

0

            

int a = 10;
a += 20; // 相当于 a = a + 20  -> a = 10 + 20 -> a = 30

      2.2 练习

           2.2.1

public static void main(String[] args) {
		int a = 1;
		short b = 2;
		
		b = b + a;//编译失败
		b += a;//3
		System.out.println(b);
}
b = b + a;    // 编译失败,因为short类型和int类型计算结果自动提升为int类型,赋给short类型会报错
b+=a;    // 3   += 内部隐含了一个强转,当b = b+a行不通时,会自动变成:b=(short)(b+a)

            2.2.2

public static void main(String[] args) {
		byte b1 = 1;
		byte b2 = 2;
	    //byte b3 = 1 + 2;
		//byte b3 = b1 + b2;
		//System.out.println(b3);
}
分析:
b3=1+2 ,1和2是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了1+2的结果并没有超过byte类型的取值范围,可以赋值给变量b3,因此b3=1+2 是正确的。
常量优化机制:
有一些计算,非常简单,例如常量和常量的计算就非常简单,在编译阶段就可以把这些简单的运算计算完。
反之, b4=b2+b3 ,b2和b3是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3的结果是什么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。

3、关系运算符(比较运算符、条件运算符、判断运算符)

      3.1 关系运算符的概念

            是用来 比较/判断 两个数据之间的关系,比较的结果是一个布尔类型的值,要么是true,要么是false。

运算符

运算规则

范例

结果

==

相等于

4==3

false

!=

不等于

4!=3

true

<

小于

4<3

false

>

大于

4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

true

4、逻辑运算符

      4.1 逻辑运算符的概念

            是用来连接两个布尔类型结果的运算符,运算结果都是布尔值true 或者false。

运算符

运算规则

范例

结果

&

false&true

False

|

false|true

True

^(了解)

异或

(相同:false,不同:true)

true^flase

True

!

!true

Flase

&&

短路与

false&&true

False

||

短路或

false||true

True

      4.2  && 和 ||

            && 短路与

                  短路特点:符号左边是false,右边不运算

            || 短路或

                  短路特点: 符号左边是true,右边不运算

            结论:实际开发中都是使用短路与&&和短路或||,因为效率更高。

int x = 5;
int y = 3;
		
int a = 10;
int b =8;
/*
System.out.println(x<y & a++<b);  // false
System.out.println(a);  // 即使第一个表达式是false 也会计算第2个表达式  也就是执行了a++ a的值变为11
*/
System.out.println(x<y && a++<b);   // false
System.out.println(a);  //10   第一个表达式是false了结果就直接为false 不会执行第2个表达式 也就是没有执行a++ a的值还是10

5、三元运算符

      5.1 三元运算符的概念

            三元运算符格式:

                  数据类型 变量名 = 条件表达式?值1:值2

            条件表达式为true时,值1 赋值给变量;条件表达式为false时,值2 赋值给变量。

      5.2 练习

            5.2.1 获取三个数中的最大值

int a = 10;
int b = 211;
int c = 444;
int max = a>b?(a>c?a:c):(b>c?b:c);
System.out.println(max);

 

*交换两个变量的值

方式一:使用temp临时变量

int a = 1;
int b = 2;

int temp = a;
a = b;
b = temp;
System.out.println(a);  // 2
System.out.println(b);  // 1

方式二:不使用临时变量

int a = 1;
int b = 2;

a = a + b;
b = a - b;
a = a - b;
System.out.println(a);  // 2
System.out.println(b);  // 1

上一篇:(9)Java基础语法 --字符集和char类型

下一篇:(11)Java基础语法 --运算符扩展

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值