Java运算符-赋值运算符

目录

  • “=”的作用
  • 用赋值符交换两个数的值
  • 数值的累加
  • 练习

“=”的作用

=的作用: 将等号右侧的值赋给等号左侧

例:

int age = 20;

int age = 5 + 6 + 7

用赋值符交换两个数的值

public class TestOpe06{
        public static void main(String[] args){
                //任意给出两个数,交换两个数并输出:
                //1.给出两个数:
                int num1 = 10;
                int num2 = 20;
                
                //2.输出交换前的两个数:
                System.out.println("交换前:"+num1+"\t"+num2);
                
                //3.交换
                /*
                错误代码:
                num1 = num2;
                num2 = num1;	
                */		
                //解决办法:
                //引入一个中间变量:
                int t;
                t = num1;
                num1 = num2;
                num2 = t;
                /*
                int t;
                t = num2;
                num2 = num1;
                num1 = t;
                
                */
                
                //4.输出交换后的两个数:
                System.out.println("交换后:"+num1+"\t"+num2);
        }
}

Java运算符-赋值运算符_第1张图片

分析:

  • 交换两个给定的整数并输出交换前后的值。
  1. 任意给出两个数
int num1 = 10;
int num2 = 20;

这两行代码定义了两个整数变量num1num2,并分别初始化为10和20。
2. 输出交换前的两个数

System.out.println("交换前:"+num1+"\t"+num2);

这行代码将输出“交换前:”后跟num1num2的值,中间用制表符(\t)分隔。输出结果为:交换前:10 20
3. 交换

int t; // 引入一个中间变量
t = num1; // 将num1的值赋给t
num1 = num2; // 将num2的值赋给num1
num2 = t; // 将t(原来的num1的值)赋给num2

这三行代码使用了一个中间变量t来实现两个数的交换。首先,num1的值被存储在t中,然后num2的值被赋给num1,最后原先num1的值(现在存储在t中)被赋给num2,完成了交换。
4. 输出交换后的两个数

System.out.println("交换后:"+num1+"\t"+num2);

这行代码将输出“交换后:”后跟交换后的num1num2的值,中间用制表符(\t)分隔。输出结果为:交换后:20 10

  • 这段代码的目的是通过一个中间变量来交换两个整数的值,并输出交换前后的结果。

数值的累加

package StudyTest01;

public class TestOpe06 {
    public static void main(String[] args){
        //实现功能:给出三个数,求和:
        //1.给出三个数:
        int num1 = 10;
        int num2 = 20;
        int num3 = 30;
        //2.求和
        //int sum = num1+num2+num3;
        //定义一个变量,用来接收和:
        int sum = 0;
        sum = sum + num1;//等效:  sum += num1;
        sum = sum + num2;// sum += num2;
        sum = sum + num3;//sum += num3;
        //3.将和输出:
        System.out.println("和:"+sum);
    }
}

Java运算符-赋值运算符_第2张图片
分析:
这段代码是一个简单的Java程序,用于实现以下功能:

  1. 定义三个整数变量num1num2num3,并分别初始化为10、20和30。
  2. 计算这三个数的和。
  3. 输出这三个数的和。

具体步骤如下:

  1. 定义三个整数变量并初始化:
int num1 = 10;
int num2 = 20;
int num3 = 30;
  1. 定义一个整数变量sum,用于存储这三个数的和,并初始化为0。
  2. 使用加法运算符将num1num2num3的值累加到sum中:
sum = sum + num1; // 等效于 sum += num1;
sum = sum + num2; // 等效于 sum += num2;
sum = sum + num3; // 等效于 sum += num3;
  1. 使用System.out.println方法输出这三个数的和:
System.out.println("和:"+sum);

输出结果将是:

和:60

练习

请问a+=b相当于a=a+b,那么也相当于 a=b+a吗?对于String类型呢?

答:
是的,a += b 确实相当于 a = a + b。至于 a = b + a,它们是不等价的。

a += b 是赋值和加法的组合,意思是将 ab 的值相加,并将结果赋值给 a

a = b + a 只是简单地将 ba 的值相加,并将结果赋值给 a

举个例子来说明:

public class Example {
    public static void main(String[] args) {
        int a = 5;
        int b = 3;

        // 使用 a += b
        a += b;
        System.out.println("a after a += b: " + a);  // 输出:8

        // 使用 a = b + a
        a = b + a;
        System.out.println("a after a = b + a: " + a);  // 输出:8,但这是巧合,因为两个数都是正数。
    }
}

注意第二个输出的结果是8,这只是一个巧合。因为如果 ba 的值是负数或正数,那么 a = b + a 的结果可能与 a += b 的结果不同。例如,如果 b 是-3,那么:

  • a += b 将变为 a = a - 3(假设 a 是5,结果是2)
  • a = b + a 将变为 a = -3 + 5(结果是2)

a += b 确实相当于 a = a + b。这种操作在 Java 中被称为复合赋值运算符。对于整数、浮点数等基本数据类型,这种操作是非常直接的。

  • 但是,对于 String 这种对象类型,情况就有些不同了。当你使用 += 运算符连接两个字符串时,实际上发生的是字符串的拼接。下面是一个例子:
String a = "Hello, ";
String b = "World!";

// a += b; // 这将导致 "Hello, World!" 被赋值给 a
// 这与 a = a + b 是等效的,但并不等同于 a = b + a

a = a + b; // 这将导致 "Hello, World!" 被赋值给 a

请注意,对于对象类型(如 String),a += ba = b + a 在语义上并不完全等价。在第一种情况下,你是在拼接两个字符串;而在第二种情况下,你实际上是在创建一个新的字符串对象,该对象是通过对两个字符串进行比较并排序来创建的。这可能会导致性能上的差异,尤其是在处理大量数据时。但对于简单的字符串拼接操作,这种差异通常是可以忽略不计的。

你可能感兴趣的:(JAVA,java,开发语言)