二、基础语法(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<second?first:second));
}
}
//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();
网友评论