一、算术运算符
常用算术运算符有:+、-、*、/、%(取余)、++(自增)、--(自减)、>> 、<< 。
1.除法运算
在java程序中,对于以0作为除数的情况,根据操作数的数据类型做了不同的处理。对于整型数据的运算,它将会出现异常;而浮点型数据的运算,它将会得到一个无穷大值或者NaN。
整数在做除法运算时,去除小数部分,保留整数部分
除法运算的代码如下:
//两个整数在进行除法的时候,会保留整数部分,舍去小数部分
int i=5;
int j=2;
int result=i/j;//实际上2.5
System.out.println(result);//2
//如果要进行除法运算时,一般声明double类型变量进行运算
double d=5.0;
double d2=2.0;
double result2=d/d2;
System.out.println(result2);//2.5
2.取余运算
取余运算也会执行除法操作,所以,对于整形数据来说,也不能使用0作为取余运算中的除数,否则也会出现异常。
取余运算可以用于判断奇偶数,判断素数,求最大公约数的运算等。
取余运算的代码如下:
int i=5;
int j=2;
int result=i%j;
System.out.println(result);//1
//在进行取余时,得到结果的符号跟被取余数符号一致
int a=13;
int b=-2;
int result2=a%b;
System.out.println(result2);//1
//如果被取余数的绝对值小于取余数,结果就等于被取余数
int m=2;
int n=5;
int result3=m%n;
System.out.println(result3);//2
3.自增、自减
在编写程序时,经常需要对一个变量进行加1或者减1的运算,这时通常使用自增或自减运算符来完成。
自增自减又分为前置和后置自增自减,前置自增自减是先做运算再自增自减,后置自增自减是先自增自减再赋值。
自增自减运算符只能用于变量,而不能用于数字本身。
自增自减运算的代码如下:
int i=2;
i++;//i=i+1
int j=3;
j--;//j=j-1
System.out.println("i="+i);//3
System.out.println("j="+j);//2
//后置自增自减在做运算的时候,先赋值再去自增自减
int a=2;
int result=a++;//(1)result=a (2)a++
System.out.println("a="+a);//3
System.out.println("结果为"+result);//2
//前置自增自减在做运算的时候,先自增自减再赋值
int b=3;
int result2=--b;//(1)--b (2)result2=b
System.out.println("b="+b);//2
System.out.println("结果为"+result2);//2
4.移位
System.out.println(21>>2);//往右边移动几位,除以多少个2 21/4=5
System.out.println(21<<2);//往左边移动几位,乘以多少个2 21×4=84
二、关系运算符
关系运算符包括 >、<、>=、<=、==、!= 。
在java程序中,不等于使用!=来表示的,等于使用==,两者除了用于简单类型的操作数外,还可以用于比较引用类型数据。除这两者外,其他关系运算符都不能用于boolean类型的操作数。
关系运算符的代码如下:
//关系运算符运算的结果是Boolean类型的
int age=20;
int age2=18;
System.out.println(age>=age2);//true
三、逻辑运算符
逻辑运算符也称为布尔运算符,主要包括&&与、||或、!非。
变量a | 变量b | a&&b | a||b | !a |
---|---|---|---|---|
false | false | false | false | true |
false | true | false | true | true |
true | true | true | true | true |
true | false | false | true | false |
与:有假即假,全真为真。
或:有真即真,全假为假
与运算:当第一个表达式为假时后面的表达式就不会再去运算了。
或运算:当第一表达式为真时后面的表示式不参与运算。
逻辑运算符的代码如下:
int m=20;
boolean result=m<10&&m>15;
boolean result2=m!=20||m>10;
System.out.println(result);//false
System.out.println(result2);//true
//短路逻辑与:当第一个表达式为false时,后面的表达式不会去执行
boolean result3=m<10&&m++>20;
System.out.println(m);//20
//短路逻辑或:当第一个表达式为true时,后面的表达式不会去执行
int n=20;
boolean result4=n>10||++n>20;
System.out.println(n);//20
四、三目运算符
三目运算符: boolean表达式?表达式1:表达式2 。
三目运算符代码如下:
//判断分数是否及格
int score=99;
String result=score>=60?"及格":"重修";
System.out.println(result);//及格
//给予条件做自增或者自减运算
int m=0;
int result2=m<=0?++m:m--;
System.out.println(m);//1
System.out.println(result2);//1
五、赋值运算
int sum=10;
sum+=2;// sum=sum+2
System.out.println(sum);//12
sum*=3;// sum=sum*3
System.out.println(sum);//36
六、字符串拼接运算
//在字符串中 + 叫拼接
String str="100";
int i=123;
String result = str + i;
System.out.println(result);//100123
// 先运算,再拼接
String result2=100+100 +"";
//先拼接,再运算
String result3="100"+100+100;// "100100"+100=100100100
System.out.println(result2);
System.out.println(result3);//100100
小案例
1、求出三个身高中的最大身高
这里主要用到的是三目运算符,先把其中两个身高值进行比较求出一个较大值,再和最后一个身高值进行比较求出最大值。
代码如下:
//定义一个求最大身高的方法
public static void maxHeight(){
Scanner scan=new Scanner(System.in);
System.out.println("请输入三个身高:");
//从键盘获取三个身高值
int a=scan.nextInt();
int b=scan.nextInt();
int c=scan.nextInt();
//三元运算符求得最大身高
int n=a>b?a:b;
int max=c>n?c:n;
System.out.println("最大身高是:"+max+"cm");
}
public static void main(String[] args) {
//测试
maxHeight();
}
结果如下:
2、给出一个三位数,分别求出该数的百位 十位 个位
思路如下:
假设给出的数是142,那么我们先整除100,由于两个整数相除会舍去小数部分,那么我们会直接得到百位1;接着我们用142先整除10得到14,再用14对10取余得到十位4;最后用142直接对10取余可以得到个位2。
代码如下:
//定义一个计算百位十位个位的方法
public static void calculate(){
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个三位数:");
int i=scan.nextInt();
//直接整除100得到百位
int a=i/100;
//先整除10再对10取余得到十位
int b=i/10%10;
//直接对10取余得到个位
int c=i%10;
System.out.println("百位是"+a);
System.out.println("十位是"+b);
System.out.println("个位是"+c);
}
public static void main(String[] args) {
calculate();
}
结果展示: