目录
第十四届蓝桥杯集训——JavaC组第五篇——四则运算/(求余/取模)
大家都知道,四则运算也就是【+-*/】在计算机中使用这几个符号来代表,但是很多时候计算还会用到(),括号是优先级最高的符号,就跟先算乘除后算加减一样。只要带()的内容肯定是最先运算的。我们在这个规律下才能正确的计算四则运算。
我们根据括号来进行先行计算的,谁被括号括着就先计算谁,下面就是一个示例:
package com.item.action;
public class Action {
public static void main(String[] args) {
int result1=5+6*2;
int result2=(5+6)*2;
System.out.println("5+6*2="+result1);
System.out.println("(5+6)*2="+result2);
}
}
输出结果:
5+6*2=17 (5+6)*2=22
运算符 | 结合性 |
---|---|
[ ] . ( ) (方法调用) | 从左向右 |
! ~ ++ -- +(一元运算) -(一元运算) | 从右向左 |
* / % | 从左向右 |
+ - | 从左向右 |
> >>> | 从左向右 |
< >= | 从左向右 |
== != | 从左向右 |
& | 从左向右 |
^ | 从左向右 |
| | 从左向右 |
&& | 从左向右 |
|| | 从左向右 |
?: | 从右向左 |
= | 从右向左 |
package com.item.action;
public class Action {
public static void main(String[] args) {
//计算四则运算
int result=(5+6-(7+8))*9/10;
System.out.println(result);
}
}
下面这个示例就很好的解释了自增自减:
package com.item.action;
public class Action {
public static void main(String[] args) {
int i=0;
int n=i++;//先赋值后+1
System.out.println(n);
int j=0;
int m=--j;//先-1再赋值
System.out.println(m);
}
}
单单说自增自减很简单,但是做以下的批量化计算呢。并且恶心到【---】三个减号在一起,试试,你还能理解吗?
package com.item.action;
public class Action {
public static void main(String[] args) {
//头脑风暴
int i=0;
i++;//1
System.out.println(i);
i=++i+2;//4
System.out.println(i);
i=--i-1;//2
System.out.println(i);
i=i---1;//1
System.out.println(i);
}
}
package com.item.action;
public class Action {
public static void main(String[] args) {
//头脑风暴
int i=0;
i++;//自身+1,默认赋值
System.out.println(i);
i=++i+2;//先+1在+2,相当于i=1+1+2
System.out.println(i);
i=--i-1;//先在4的基础上-1,在-1,i=4-1-1
System.out.println(i);
i=i---1;//先在2的基础上-1,然后赋值,赋值后再减一,故而不做计算
System.out.println(i);//最终属于是的2-1=1
}
}
任何数乘以0结果都是0,但是任何数除以0都是无法计算的,我们看一下这个异常:
我们在计算的过程中一定要排出这种情况,因为如果出现了异常就无法进行后续的计算了,因为程序已经【崩溃】停止了。
取模运算也可称称为求余计算。
例如:
10 / 3 = 3 余 1 我们要进行取模运算,实际上获取的是1,也就是余数。 我们可以利用这个方式做一些特殊的运算。
例题:
拆分整数【12345】,并将各个位置上的数字相加,输出最后的结果。
package com.item.action;
public class demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int nums=12345;
int ge=nums%10;
int shi=nums/10%10;
int bai=nums/100%10;
int qian=nums/1000%10;
int wan=nums/10000;
int sum=ge+shi+bai+qian+wan;
System.out.println(sum);
}
}
结果:
取模运算(“Modulo Operation”)和取余运算(“Remainder Operation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。 模运算在数论和程序设计中都有着广泛的应用,奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。
如果%2输出0,就是偶数,输出1就是奇数
package com.item.action;
public class demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num=5;
//如果%2输出0,就是偶数,输出1就是奇数
System.out.println(num%2);
}
}