=的作用: 将等号右侧的值赋给等号左侧
例:
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);
}
}
分析:
int num1 = 10;
int num2 = 20;
这两行代码定义了两个整数变量num1
和num2
,并分别初始化为10和20。
2. 输出交换前的两个数:
System.out.println("交换前:"+num1+"\t"+num2);
这行代码将输出“交换前:”后跟num1
和num2
的值,中间用制表符(\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);
这行代码将输出“交换后:”后跟交换后的num1
和num2
的值,中间用制表符(\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程序,用于实现以下功能:
num1
、num2
和num3
,并分别初始化为10、20和30。具体步骤如下:
int num1 = 10;
int num2 = 20;
int num3 = 30;
sum
,用于存储这三个数的和,并初始化为0。num1
、num2
和num3
的值累加到sum
中:sum = sum + num1; // 等效于 sum += num1;
sum = sum + num2; // 等效于 sum += num2;
sum = sum + num3; // 等效于 sum += num3;
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
是赋值和加法的组合,意思是将 a
和 b
的值相加,并将结果赋值给 a
。
而 a = b + a
只是简单地将 b
和 a
的值相加,并将结果赋值给 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,这只是一个巧合。因为如果 b
和 a
的值是负数或正数,那么 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 a = "Hello, ";
String b = "World!";
// a += b; // 这将导致 "Hello, World!" 被赋值给 a
// 这与 a = a + b 是等效的,但并不等同于 a = b + a
a = a + b; // 这将导致 "Hello, World!" 被赋值给 a
请注意,对于对象类型(如 String),a += b
和 a = b + a
在语义上并不完全等价。在第一种情况下,你是在拼接两个字符串;而在第二种情况下,你实际上是在创建一个新的字符串对象,该对象是通过对两个字符串进行比较并排序来创建的。这可能会导致性能上的差异,尤其是在处理大量数据时。但对于简单的字符串拼接操作,这种差异通常是可以忽略不计的。