Java扩展赋值运算符
扩展赋值运算符:是算术运算符和赋值运算符结合。
运算符 | 用法举例 | 等效的表达式 |
---|---|---|
+= | a += b | a = a+b |
-= | a -= b | a = a-b |
*= | a *= b | a = a*b |
/= | a /= b | a = a/b |
%= | a %= b | a = a%b |
1.扩展赋值运算符的概述
明确:所谓的扩展赋值运算符,本质上就是“赋值运算符”和“算数运算符之二运算符”的综合体。
+=,例如:m += n; 等效于:m = (m类型)(m + (n));
-=,例如:m -= n; 等效于:m = (m类型)(m – (n));
*=,例如:m *= n; 等效于:m = (m类型)(m * (n));
/=,例如:m /= n; 等效于:m = (m类型)(m / (n));
%=,例如:m %= n; 等效于:m = (m类型)(m % (n));
2.扩展赋值运算符的注意点
a)扩展赋值运算符是一个整体,中间不允许添加空格!
b)在“m += n”表达式中,哪些可以是常量,哪些可以是变量???
m:必须是变量,不能为常量。
n:可以是变量,可以是常量,还可以是表达式。
3.扩展赋值运算符的面试题
a)请问以下代码是否有问题???如果没有问题,请说出结果是什么???
int num += 10; // 等效于:int num; num = num + 10; 此处num并没有存储数据,因此就无法做取值操作。
System.out.println(num);
b)请问以下代码是否有问题???如果没有问题,请说出结果是什么???
int num = 10;
num *= 2 + 3;
System.out.println(num); // 输出:50
c)short num = 11; num = num + 1; 和 short num = 11; num += 1; 哪一个正确呢?
short num = 11; num = num + 1; 编译错误,因为num+1的结果属于int类型,而等号左边的变量num属于short类型。
short num = 11; num += 1; 编译正确,因为“num += 1;”等效于“num = (short)(num + 1);”,因此就没有问题。
package 扩展赋值运算符;
public class OperatorDemo04 {
public static void main(String[] args) {
short num1 = 11;
// num1 = num1 + 1;//编译报错
short num2 = 11;
num2 += 1;
System.out.println("num2="+num2);
}
}
/*
public class OperatorDemo04 {
public static void main(String[] args) {
short num = 11;
num += 1; // 等效于:num = (short)(num + 1);
System.out.println(num); // 输出:12
int num = 10;
num *= 2 + 3; // 等效于:num = num * (2 + 3);
System.out.println(num); // 输出:50
*/
/*
int num += 10; // 等效于:int num; num = num + 10;
System.out.println(num);
*/
/*
int num = 9;
num %= 2; // 等效于:num = num % 2;
System.out.println(num); // 输出:1
*/
/*
int num = 10;
num *= 2; // 等效于:num = num * 2;
System.out.println(num); // 输出:20
*/
/*
int num = 10;
num += 10; // 等效于:num = num + 10;
System.out.println(num); // 输出:20
* /
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/85612.html