运算符的分类:
按功能分为四种:
赋值运算符、算数运算符、关系运算符和逻辑运算符
按操作分为三种:
单目运算符、双目运算符和三目运算符
(这里的“目”指的是运算符连接操作数的个数)
双目:比如1+2的加号就是双目,因为它连接了2个操作数1和2.
单目:分别是“++”(自增)和“--”(自减)
三目:(条件表达式 “返回值1”:"返回值2")
三目(例):
package chapter01;
import java.util.Scanner;
public class DOME {
public static void shiwDome(String...myMember) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age=sc.nextInt();
System.out.println(age>=18?"成年":"未成年");
}
}
关系运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)
例:
int num=88,num1=100;
boolean result;
result=num>num1
sysout.out.println(num>num1+"结果是:"+resutl);
逻辑运算符:&&(与)、||(或)、!(非)
1、这里的“与”是并且的意思,表示同时满足
2、而这里的“或”表示的是或者的意思,表示在条件当中多选来进行一条满足就可以了
3、“非”就是不等于这个条件的意思
例:
int degree;//学历
int workyear;//工作年限
degree=3;//1、本科 2、硕士 3、博士
workyear;
boolean result=(degree>=2)&&(workyear>=2);
System.out.println("博士并且工作了3年入职结果为:"+resutl);
运算符优先级和表达式:
优先级 | 运算符 | 结核性 |
1 | !、++、-- | 从右到左 |
2 | *、/、% | 从左到右 |
3 | +、- | 从左到右 |
4 | >、<、>=、<= | 从左到右 |
5 | ==、!= | 从左到右 |
6 | && | 从左到右 |
7 | || | 从左到右 |
8 | =、+=、-=、*=、/=、%= | 从右到左 |
自动转换类型(例):
int a1=10;
double b1=12.5;
double result1=a1+b1;//将a1转换成double,结果为double类型
System.out.println(result1);
int a2=10;
float b2=12.5f;
float result2=a2+b2;//将a2转换成float,结果我float类型
System.out.println(result2);
int a3=10;
long b3=1000;
long result3=a3+b3;//将a3转换成long,结果我long类型
System.out.println(result3);
byte a4=10;
char b4='a';//对应97
int result4=a4+b4;//将a4转换成int,结果为int类型
System.out.println(result4);
强制转换(例)(计算圆的周长):
int r=5;
//int round=2*3.14*r;(这样会报错,因为3.14是小数)
int round=(int)(2*3.14*r);//这样才能强制转换成int类型
System.out.println("半径为"+r+"的圆的周长为:"+round);//结果为:31,丢失了0.4,会丢失精度