Java SE(20) 运算符——赋值运算符

赋值运算符

作用:将常量、变量或表达式的值赋给某一个变量。

种类:

运算符 运算 范例 结果
= 赋值 a=3;b=2; a=3; b=2;
+= 加等于 a=3;b=2; a+=b; a=a+b=5; b=2;
-= 减等于 a=3;b=2; a-=b; a=a-b=1; b=2;
*= 乘等于 a=3;b=2; a*=b; a=a*b=6; b=2;
/= 除等于 a=3;b=2; a/=b; a=a/b=1; b=2;
%= 模等于 a=3;b=2; a%=b; a=a%b=1; b=2;

目录

赋值(=)

拓展赋值运算符

面试题


  • 赋值(=)

在赋值过程中,运算顺序从右往左,将右边表达式的结果赋值给左边的变量。

练习:

public class TestOpe07{
	public static void main(String[] args){
		//任意给出两个数,交换两个数并输出
		//给出两个数
		int a=5;
		int b=10;
		//输出交换前的两个数
		System.out.println("交换前:"+a+"\t"+b);
		//交换
		int t;   //引入一个中间变量
		t=a;
		a=b;
		b=t;
		//输出交换后的两个数
		System.out.println("交换后:"+a+"\t"+b);
	}
}

运行结果:

  • 拓展赋值运算符

        在为变量赋值时,当两种数据类型彼此不兼容,或者目标数据类型取值范围小于源类型时,需要进行强制数据类型转换。然而在使用+=、-=、* =、/=、%=运算符进行赋值时,强制类型转换自动完成,程序不需要做任何显式地声明。例如:

public class TestOpe08{
	public static void main(String[] args){
		short s=3;
		int i=5;
		s+=i;    //相当于s=(short)(s+i)
	
		System.out.println("s="+s);
	}
}

运行结果:

注1:a+=b  和  a=a+b  区别:

a+=b    可读性稍差   编译效率高     底层自动进行类型转换
a=a+b     可读性好    编译效率低    手动进行类型转换

  • 面试题

(1)请问a+=b相当于a=a+b,那么也相当于  a=b+a吗?

         对于基本数据类型来说一样。例如:

              a=10;b=20;    

              a=a+b=30

              a=b+a=30

         对于String类型来说不一样。例如:

               a='x';b='u';

               a=a+b="xu"

               a=b+a="ux"

(2)下面代码哪一句出错了:

      byte a = 10; 
      int b = 20;  
      a+=b;  
      a = a+b ;      //更正为a=(byte)(a+b);

  • 易错:

在Java中可以通过一条赋值语句对多个变量进行赋值,具体示例如下:

int x,y,z;

x=y=z=5;      

需要特别注意的是,下面的这种写法在Java中是不可以的。

int  x=y=z=5;       //这样写是错误的

猜你喜欢

转载自blog.csdn.net/wqh101121/article/details/112503913