二、基础语法(day2)
5、运算符
算数运算符:+、-、、/、%、++、--、
( a%b=a-(a/b)b )
关系运算符:== 、!=、>、=、<=
① >、=、<=运算符的优先级别高于== 、!=。
② >、=、<=运算符值支持数据类型的数据比较。
逻辑运算符:&、|、^、!、&& 、 ||
① 操作数据类型只能是布尔类型,操作结果也是布尔值。
优先级别:! > & > ^异或 > | > && > || 。
②&、| 与 &&、|| 的区别
&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。即系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。短路计算功能可以提高程序的运行速度。
③ 异或:^两值相同结果为false,两值不同结果为true。
位运算符:&位与、|位或、~位非、^位异或、>>右移、<
赋值运算符:=、+=、-=、*=、/=、%=
三目运算符:表达式1?表达式2:表达式3
eg:int a=1,b=2,max;
max=a>b?a:b;
//max等于2
//三目运算符练习
import java.util.*;
public class CompareDemo {
public static void main(String[] args){
double first;
double second;
Scanner scanner=new Scanner(System.in);
System.out.print("请输入第一个数:");
first=scanner.nextDouble();
System.out.print("请输入第二个数:");
second=scanner.nextDouble();
System.out.println("最小值为:"+(first
}
}
//CompareDemo运行结果:
请输入第一个数:4
请输入第二个数:6
最小值为:4.0
运算符的优先级:
优先级
运算符
描述
1
()
括号
2
+、-
正负号
3
++、- -、!
单目运算符
4
*、/、%
乘、除、取余
5
+、-
加减
6
<>、>>>
移位运算
7
<>、>、>=
比较大小
8
==、!=
是否相等
9
&
按位于运算
10
^
按位异或运算
11
|
按位或运算
12
&&
非简洁逻辑与运算
13
双竖线
非简介逻辑或运算
14
=
赋值运算
【
左移:5<<2 将值5转换为二进制101后,左移2位,右边自动补0,即10100,计算得20
右移:x>>y 正数:将值x的二进制右移y位,左边自动补y个0
负数:将值x的二进制右移y位,左边自动补y个1
无符号右移:>>> 无论正数还是负数,移动后都自动补0
】
总结:
① 单目运算符包括!、^、++、- -优先级别高
② 优先级别最低的是赋值运算符
③ ()优先级最高,可通过()控制表达式的运算顺序。
④ 从右向左结合性的只有赋值运算符、三目运算符和多目运算符。
⑤ 算术运算符>关系运算符>逻辑运算符
//练习运算符
public class Test {
public static void main(String[] args) {
int i=0;
double x=2.3;
System.out.println("Result 1:"+(--i+i+i++));
System.out.println("Result 2:"+(i+++i));
i+=i+(i=4);
System.out.println("Result 3:"+i);
i=3+3*2%i--;
System.out.println("Result 4:"+i);
x=x++;
System.out.println("Result 5:"+x);
x+=1.2*3+x++;
System.out.println("Result 6:"+x);
x=x%3+4*2+x--;
System.out.println("Result 7:"+x);
}
}
//运行结果
Result 1:-3
Result 2:1
Result 3:6
Result 4:3
Result 5:2.3
Result 6:8.2
Result 7:18.4
6、键盘输入
使用Scanner可以接收用户键盘输入的字符。
步骤:
①导入Scanner类:
Import java.util.*;
②创建Scanner对象:
Scanner input=new Scanner(System.in);
③获得键盘输入的数据
int n=input.nextInt();
String m=input.next();