运算符
算术运算符:
运算符
运算规则
范例
结果
+
正号
+3
3
+
加
2+3
5
+
连接字符串
“中”+“国”
“中国”
-
负号
int a=3;-a
-3
-
减
3-1
2
*
乘
2*3
6
/
除
5/2
2
%
取模
5%2
1
++
自增
int a=1;a++/++a
2
--
自减
int b=3;a--/--a
2
加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
“%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
整数做被除数,0不能做除数,否则报错。
算术运算符++、--的使用
++运算符:会在原来的基础上自增1
--运算符:会在原来的基础上自减1
++、-- 运算符后置时,先使用变量原有的值参与运算,运算操作完成后,变量x的值自增1或者自减1
++、--运算符前置时,先将变量x的值自增1或者自减1,然后使用更新后的新值参与运算操作
赋值运算符
运算符
运算规则
范例
结果
=
赋值
int a=2
2
+=
加后赋值
int a=2,a+=2,(a=a+2)
4
-=
减后赋值
int a=2,a-=2
(a=a-2)
0
*=
乘后赋值
int a=2,a*=2
(a=a*2)
4
/=
整除后赋值
int a=2,a/=2
1
%=
取模后赋值
int a=2,a%=2
0
比较运算符
比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false。
运算符
运算规则
范例
结果
==
相等于
4==3
False
!=
不等于
4!=3
True
<
小于
4<3
False
>
大于
4>3
True
<=
小于等于
4<=3
False
>=
大于等于
4>=3
True
赋值运算符的=符号,符号与比较运算符的==符号是有区别的
赋值运算符的=符号,是用来将=符号右边的值,赋值给左边的变量
比较运算符的==符号,是用来判断==符号 左右变量的值是否相等的
逻辑运算符
逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false
运算符
运算规则
范例
结果
&
与
false&true
False
|
或
false|true
True
^
异或
true^flase
True
!
非
!true
Flase
&&
短路与
false&&true
False
||
短路或
false||true
True
逻辑运算符通常是连接两个其他表达式计算后的布尔值结果
当使用短路与或者短路或时,只要能判断出结果则后面的部分就不在判断
运算符的结果规律:
短路与&&:参与运算的两边数据,只要有false,则运算结果为false
短路或||:参与运算的两边数据,只要有true, 则运算结果为true
逻辑非!:参与运算的两边数据,原先是true则变成false,原先是false则变成true
//&与的运行结果
System.out.println(false&true);//false
System.out.println(true&false);//false
System.out.println(true&true);//true
System.out.println(false&false);//false
//&&短路与的运行结果
System.out.println(false&&true);//false
System.out.println(true&&false);//false
System.out.println(true&&true);//true
System.out.println(false&&false);//false
//例子
int a=1;
int b=1;
System.out.println(1==2&a++ ==1);//false
System.out.println(1==2&&b++ ==1);//false
System.out.println(a);//2
System.out.println(b);//1
注意:
与&和短路与&&的区别
&如果第一个值是false,还会判断第二个值
&&如果第一个值是false,将不会判断第二个值
//|或运行结果
System.out.println(false|true);//true
System.out.println(true|false);//true
System.out.println(true|true);//true
System.out.println(false|false);//false
//||短路或运行结果
System.out.println(false||true);//true
System.out.println(true||false);//true
System.out.println(true||true);//true
System.out.println(false||false);//false
//例子
int c=1;
int d=1;
System.out.println(1==1|c++ ==1);//true
System.out.println(1==1||d++ ==1);//true
System.out.println(c);//2
System.out.println(d);//1
注意:
//或|和短路或||的区别
|如果第一个值为true,还会判断第二个值
||如果第一个值为true,不会判断第二个值
三元运算符
格式:
(条件表达式)?表达式1:表达式2
三元运算符的运算规则:
先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2。
例子:
//随机出入三个数,然后输出最大值
import java.util.Scanner;
class Demo05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int x=sc.nextInt();
System.out.println("请输入第二个数:");
int y=sc.nextInt();
System.out.println("请输入第三个数:");
int z=sc.nextInt();
int max = (x>y?x:y)>z?(x>y?x:y):z;
System.out.println("最大值为:"+max);
}
}
Max= (x>y?x:y)>z?(x>y?x:y):z;
先判断两边括号里面x,y的值,如果x值大然后在跟z值比大小,若y值大然后y跟z值在比较大小
运算符优先级
每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算)
优先级
描述
运算符
1
括号
()、[]
2
正负号
+、-
3
自增自减,非
++、--、!
4
乘除,取余
*、/、%
5
加减
+、-
6
移位运算
<>、>>>
7
大小关系
>、>=、
8
相等关系
==、!=
9
按位与
&
10
按位异或
^
11
按位或
|
12
逻辑与
&&
13
逻辑或
||
14
条件运算
?:
15
赋值运算
=、+=、-=、*=、/=、%=
16
位赋值运算
&=、|=、<<=、>>=、>>>=
引用数据类型
Scanner类
Scanner类
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。
Scanner使用步骤:
导包:import java.util.Scanner;
创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
int i = sc.nextInt(); 用来接收控制台录入的数字
String s = sc.next(); 用来接收控制台录入的字符串
例子:
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) {
//创建Scanner引用类型的变量
Scanner sc = new Scanner(System.in);
//获取数字
System.out.println("请输入一个数字");
int n = sc.nextInt();
System.out.println("n的值为" + n);
//获取字符串
System.out.println("请输入一个字符串");
String str = sc.next();
System.out.println("str的值为" + str);
}
}
运行结果:
随机数类Random
这个Random类,它可以产生多种数据类型的随机数,在这里我们主要介绍生成整数与小数的方式。
public int nextInt(int maxValue) 产生[0,maxValue)范围的随机整数,包含0,不包含maxValue;
public double nextDouble() 产生[0,1)范围的随机小数,包含0.0,不包含1.0。
l Random使用方式:
n import导包:所属包java.util.Random
n 创建实例格式:Random 变量名 = new Random();
接下来,通过一段代码,一起学习下Random类的使用,RandomDemo.java
import java.util.Random;
public class RandomDemo {
public static
void main(String[] args) {
// 创建Random类的实例
Random
r = new Random();
// 得到0-100范围内的随机整数,将产生的随机整数赋值给i变量
int i = r.nextInt(100);
//得到0.0-1.0范围内的随机小数,将产生的随机小数赋值给d变量
double d = r.nextDouble();
System.out.println(i);
System.out.println(d);
}
}
运行结果如下图所示: