0模于1运算Java中0%1_java运算符01_运算符(上)

1.赋值运算符

=,把等号右边表达式的结果赋值给等号左边的变量或final修饰的常量。

【随堂练习】

1、交换两个变量的值(用两种方式实现)。

方案一:定义一个零时变量来实现

public class OperatorDemo {

public static void main(String[] args) {

int num1 = 3, num2 = 5;

// 方案一:定义一个零时变量来实现

int temp = num1;

num1 = num2;

num2 = temp;

// 交换之后:num1 = 5, num2 = 3

System.out.println("num1 = " + num1 + " num2 = " + num2);

}

}

该方式的优点:特别好理解,缺点:需要定义零时变量,浪费内存空间。

方案二:一加两减。

public class OperatorDemo {

public static void main(String[] args) {

int num1 = 3, num2 = 5;

// 方案二:一加两减。

num1 = num1 + num2; // num1 = 8

num2 = num1 - num2; // num2 = 3

num1 = num1 - num2; // num1 = 5

// 交换之后:num1 = 5, num2 = 3

System.out.println("num1 = " + num1 + " num2 = " + num2);

}

}

该方式的优点:无需定义零时变量,节约内存空间,缺点:不太好理解。

2.算数运算符

算数运算符可分为:一元运算符和二元运算符

二元运算符,需要两个操作数参与运算。

一元运算符,只需要一个操作数参与运算。

2.1一元运算符

只需要一个操作数的运算符称为一元运算符,如++,-- 等。

++ 自增运算符

如num++和++num,都等价于num = num + 1

num++和++num的区别:

++num 先自增,后参与运算

num++ 先参与运算,后自增

-- 自减运算符

如num--和--num,都等价于num = num - 1

num--和--num的区别

--num 先自减,后参加运算

num-- 先参与运算,后自减

【思考】

1、可以对常量进行递增或递减操作吗?例如:5++或++5。

【随堂练习】

1、int a = 3, b = 4; 求a++ / 3 + --b * 2 - a-- % 6 + b++ * 3 - ++b的值。

【经典面试题】

1、int num = 5; num = num++;请问代码执行后num的值为多少?

分析:很多学生以为num的结果为6,实际上num的结果为5,接下来我就给大家分析一下此题。

“num = num++;”底层操作

第一步:定义一个零时变量,用于保存num的值。

int temp = num; --> temp = 5;

第二步:执行num的自增操作,也就是执行num++操作

num = num + 1; --> num = 6;

--------------以上两步执行的是等号有边的操作-------------

--------------最后一步,执行的是赋值操作-------------

第三步:把零时变量的值赋值给等号左边的num。

num = temp; --> num = 5;

2.2二元运算符

二元运算符指的是需要两个操作数才能完成运算的运算符,例如:+,-,*,/,%。

+,加法运算,连接符操作,还可以表示正数。

-,减法运算,还可以表示负数。

*,乘法运算

/,除法运算

%,取模运算或取余运算,获得两个数相除的余数。

取模运算示例:

0 % 3,结果为:0 --> 强调,零模任何一个数,结果都为零。

1 % 3,结果为:1

2 % 3,结果为:2

3 % 3,结果为:0

4 % 3,结果为:1

取模运算的使用场合:判断m是否能被n整除:

如果m能被n整除,则m%n的结果为零。

如果m不能被n整除,则m%n的结果不为零。

【注意事项】

两个整数做除法运算,返回的结果肯定是一个整数。

两个数做除法运算,分母不允许为零,否则抛出算数异常。

【随堂练习】

1、获取整数987的百位数、十位数和个位数。

public class OperatorDemo {

public static void main(String[] args) {

// 2、获取整数987的百位数、十位数和个位数。

int num = 987;

// 个位数,7

int bit1 = num % 10;

System.out.println("个位数:" + bit1);

// 十位数,8

// 方案一:先获得98,然后再获得8

// int bit2 = num / 10 % 10;

// 方案二:先获得87,然后再获得8

int bit2 = num % 100 / 10;

System.out.println("十位数:" + bit2);

// 百位数,9

int bit3 = num / 100;

System.out.println("百位数:" + bit3);

}

}

3.扩展赋值运算符

扩展赋值运算符:是算术运算符和赋值运算符结合。

运算符

用法举例

等效的表达式

+=

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、获取三个学生的成绩,并计算三个学生成绩的平均分。

【常见面试题】

1、int num = 3; num *= 2 + 3; 请问num的结果为多少?

分析:很多同学认为num *= 2 + 3;等效于num = num*2 + 3,所以认为num的结果为9。

​ 而实际上,num *= 2 + 3;等效于num = num*(2 + 3),所以num正确的结果是15。

2、short num = 11; num = num + 1; 和short num = 11; num += 1;哪一个正确呢?

分析:short num = 11; num = num + 1;语法错误,因为num + 1的结果为int类型。

​ short num = 11; num += 1;语法正确,因为num += 1;等效于num = (short)(num + 1);。

3、int sum += 30; 请问这行语句语法是否正确???

分析:int sum += 30; 等效于int sum; sum += 30;,num只声明未赋值,无法参与算数运算,所以该语句语法错误。

4.关系运算符

关系运算符用来进行比较运算,关系运算符的运算结果是boolean类型。条件成立,则返回true。条件不成立,则返回false。。

、 =、<=、==、!=

==(相同):比较左右两边的数值是否相同。相同则返回true,否则返回false。

!=(不相同):比较左右两边的数值是否不相同。不相同则返回true,相同则返回false。

注意事项:

1、请问以下代码执行的结果是什么???

boolean flag = false;

if(flag = true) {

System.out.println("flag等于true"); // 此行语句输出

}

else {

System.out.println("flag等于false");

}

注意:在if的条件表达式中,”flag = true“做了赋值操作,而不是比较操作。

建议:常量放在”==“的左边,变量放在”==“的右边。

好处:如果“==”误写为“=”,那么问题就提前暴露在编译时,避免把问题暴露在运行时。

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值