Java运算符
概念:用来操作数据的符号;
一、算术运算符 +、-、*、/、%,++,–
-
加:+
-
作用:
-
求和
-
连接自字符串的作用;
public class operator { public static void main(String[] args) { int a=5;//声明变量a赋值为5 int b=2;//声明变量b赋值为2 System.out.println(a+b);//打印输出a+b的和 } }
-
-
减:-
-
求差
-
public class operator { public static void main(String[] args) { int a=5;//声明变量a赋值为5 int b=2;//声明变量b赋值为2 System.out.println(a-b);//打印输出a-b的差值 }
-
-
乘:*
-
求积
-
public class operator { public static void main(String[] args) { int a=5;//声明变量a赋值为5 int b=2;//声明变量b赋值为2 System.out.println(a*b);//打印输出a*b的积 } }
-
-
除:/
-
求商
-
public class operator { public static void main(String[] args) { int a=5;//声明变量a赋值为5 int b=2;//声明变量b赋值为2 System.out.println(a/b);//打印输出a/b的商 } }
- 注意:两个整形的数相除其结果为整型,小数部分会直接舍弃
-
-
求余(取模):% 获取两个数相除后的余数。
-
public class operator { public static void main(String[] args) { int a=5;//声明变量a赋值为5 int b=2;//声明变量b赋值为2 System.out.println(a%b);//打印输出a%b的余数 } }
以上内容为双目运算符,自增和自减为单目运算符;
-
-
自加:++ 自增+1
-
自减:-- 自减-1
-
public class operator { public static void main(String[] args) { a++;//自增+1 后自增 先做整体的 输出动作,在+1 System.out.println(a); ++a;//前自增 先做自身+1动作,在做整体表达式的输出动作。 System.out.println(a); b--;//自减-1 后自减 System.out.println(b); --b;//前自减 System.out.println(b); } }
表达式:使用运算符和变量(常量)组合起来完成某种功能的式子;
-
二、赋值运算符 =,+=,-=,*=,/=,%=
-
= 赋值
-
作用:将赋值符号右边表达式的结果交付给右边的变量。
public static void main(String[] args) { /** * 赋值符号 */ int x=2; x=x+2;//等价于 System.out.println(x);//打印输出a%b的余数 }
-
-
+=:
- 作用:在本例中等价于x=x+2;
public static void main(String[] args) { /** * +-符号 */ int x=2; //x=x+2;//等价于 x+=2; System.out.println(x); }
-
*=,/=,%=用法与上述用法相等。
-
运算过程:
-
将赋值符号两侧的变大时做对应的算术运算;
-
将运算结果做类型的隐式转换为赋值符号左侧的类型;
-
将转换后的结果交付给左边的变量;
-
-
注意:赋值符号是一个整体符号,中间不能够有空格。
三、比较运算符
比较运算符: 是否相等或值的大小比较的运算符,凡是有比较运算符参与的表达式最后的结果类型必须是boolean;
-
运算符号:
大于>、小于<、等于==(用与判断)、大于等于>=、小于等于<=、不等于!=
都是双目运算符,单目运算符的优先级要高于双目运算符优先级
public static void main(String[] args) { /** * 运算符 */ int a=5; int b=4; boolean res0=a<b; boolean res1=a<b; boolean res2=a<=b; boolean res3=a>=b; boolean res4=a==b; boolean res5=a!=b; System.out.println(res0);//打印输出res的值 System.out.println(res1);//打印输出res的值 System.out.println(res2);//打印输出res的值 System.out.println(res3);//打印输出res的值 System.out.println(res4);//打印输出res的值 System.out.println(res5);//打印输出res的值 }
四、逻辑运算符
运算符:&:逻辑与、|:逻辑或、!:逻辑非、&&:双与(短路与)、||:双或(短路或);
逻辑:完成某件事情可能会有多个条件,
1. 逻辑与:若条件都成立则事情可以完成,这种情况下,各个条件间关系为逻辑与关系。
若条件中只有一个不成立,则事情不可以完成,这种情况下,各个条件间关系任为逻辑与关系
public static void main(String[] args) {
/**
* 逻辑与运算
*/
boolean A=true;
boolean B=true;
boolean C=true;
boolean res=A&B&C;
System.out.println(res);//true
B=false;
res=A&B&C;
System.out.println(res);//false
}
逻辑与运算与逻辑双与运算的区别:
特点:左右两侧都要执行;实际情况使用双与;
public static void main(String[] args) {
/**
* 逻辑与和逻辑双与的运算区别
*/
int a=3;
int b=4;
int c=5;
int d=6;
boolean res=a++>b&c++<d;//双侧都参与运算
System.out.println(res);
System.out.println("a="+a);
System.out.println("c="+c);
System.out.println("_____________分隔符______________");
int a1=3;
int b1=4;
int c1=5;
int d1=6;
boolean res1=a1++>b1&&c1++<d1;//左侧为false,右侧不参与运算,c++不执行被短路
System.out.println(res1);
System.out.println("a1="+a1);
System.out.println("c1="+c1);
}
-
逻辑或:在多个条件中若有一个条件成立,事情可以完成。参加判断的两个表达式中有一个结果为真,其逻辑运算结果为真。
- 逻辑或特点:左右两侧表达式都参与运算
- 逻辑双或特点:左侧位置,右侧表达式不参与运算;执行效率高于单与。
public static void main(String[] args) { /** * 逻辑与和逻辑双与的运算区别 */ int a=3; int b=4; int c=5; int d=6; boolean res=a++<b|c++<d;//双侧都参与运算 System.out.println(res); System.out.println("a="+a); System.out.println("c="+c); System.out.println("_____________分隔符______________"); int a1=3; int b1=4; int c1=5; int d1=6; boolean res1=a1++<b1||c1++<d1;//左侧为false,右侧不参与运算,c++不执行被短路 System.out.println(res1); System.out.println("a1="+a1); System.out.println("c1="+c1); }
-
逻辑非:逻辑反向操作;
public static void main(String[] args) { /** * 逻辑非 */ int a=3; int b=4; int c=5; int d=6; boolean res=a++<b|c++<d;//双侧都参与运算 System.out.println(res); System.out.println(!res); }
注意:逻辑运算符表达式运算的结果必然为boolean的数据类型;
五、三元运算符
-
语法格式:布尔条件表达式 ?表达式1(值1):表达式2(值2);
-
执行流程:
1.
-
布尔表达式为true。整个三元运算表达式的结果为表达式1的结果;
-
布尔表达式结果为false,真个三元运算表达式的结果为表达式2的结果;
-
注意:三元运算符执行后必须要有返回结果;
public static void main(String[] args) { /** * 三元运算 */ int a=3; int b=4; boolean res=(a==b?true:false);//三元运算 System.out.println(res); }
-
六、表达式
七、Scanner接收器
键盘扫描器:Scanner——>从键盘接收数据、字符串等信息;
-
使用方法:
-
导包 :告知声明该扫描器所在位置,放在及自定义的class类上面
import Java.util.Scanner;
-
创建对象:在入口函数main中
Scanner scan=new Scanner(System.in);
-
调scan实例,命名为x
int x=scan.nextInt();
-
输出数据:答应输出接收的数值;
System.out.println(x);
- 综合案例
package JavaSE; /** * 键盘录入数据 */ import java.util.Scanner;//导包 public class operator { public static void main(String[] args) { Scanner scan=new Scanner(System.in);//创建对象 System.out.println("请输入数值:"); int x=scan.nextInt();//对象实例化,接收整数类型的数值; System.out.println(x);//输出数值 }
-