运算符
java表达式是变量,常量,运算符,方法调用的序列,它执行指定的计算并返回某个确定的值
算数运算符
总结
- +,-,*,/都是比较简单的操作。
- +的集中作用:
- 加法
- 正数
- 字符串连接符
- 除法的时候要注意一个问题:
- 整数相除,只能得到整数。
- 要想得到小数,可以乘以0.1
- ++ 和–的应用:
int a = 10;
int b = 4;
System.out.println(a / b);//2
System.out.println(a * 1.0 / b);//2.5
System.out.println(a / b * 1.0);//2.0
int a1 = 10;
int b1 = 10;
a1++;
++b1;
System.out.println(a1);//11
System.out.println(b1);//11
//后++先运算,后+1,前++先+1,后运算
int c = a1++;
int d = ++b1;
System.out.println(c);//11
System.out.println(d);//12
int e = 10;
int f = 10;
//输出也相当于做运算
System.out.println(e--);//10
System.out.println(--f);//9
int a = 10;
int b = 10;
int c = 10;
a = b++;//a=10.b=11
c = --a;//a=9,c=9
b = ++a;//a=10,b=10
a = c--;//a=9,c=8
System.out.println("a="+a+",b="+b+",c="+c);
赋值运算符
符号
- =,+=,-=,*=,/=
- =为基本的赋值运算符,其他的为扩展的算术运算符
面试题
short s = 1;
//s = s + 1;//错误:不兼容的类型,从int转换到short可能会有损失
//+=,-=,/=,*=,%=默认包含了一个类型转换
short s1 = 1;
s1 += 1;
关系运算符
逻辑运算符
规格
&:两个都为true,则结果为true,有一个为false,则结果为false.
|:两个都为false,结果为false,有一个为true,则结果为true.
&&;前一个如果是false,则后一个不进行运算,直接输出false,前一个是true,再看后一个,两个都是true,则结果为true.
||:前一个是true,则结果是true,否则看后一个,如果为true,则结果为true,否则为false.
int x = 3;
int y = 4;
System.out.println((x++ > 3) & (y++ > 4));//false&false
System.out.println(x);//4
System.out.println(y);//5
int x1 = 3;
int y1 = 4;
System.out.println((x1++ > 3) && (y1++ > 4));//false
System.out.println(x1);//4
System.out.println(y1);//4,&&的左边是false,则右边的直接不执行,自增运算就没有执行,y的值不变
int x2 = 3;
int y2 = 4;
System.out.println((++x2 > 3) | (++y2 > 4));//true|true
System.out.println(x2);//4
System.out.println(y2);//5
int x3 = 3;
int y3 = 4;
System.out.println((++x3 > 3) || (++y3 > 4));//true
System.out.println(x3);//4
System.out.println(y3);//4,前一个是true,后面不执行
int x4 = 3;
int y4 = 4;
System.out.println((x4++ > 3) || (++y4 > 4));//true
System.out.println(x4);//4,
System.out.println(y4);//5,前一个是false,则执行后一个,
System.out.println(3 & 5);//1
System.out.println(3 | 5);//7
System.out.println(3^5);//6
位运算符
规格:
- 左移除以2,右移乘2。
三目运算符:
键盘输入一个数据
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();//输入int
double d = sc.nextDouble();//输入double
float f = sc.nextFloat();//输入float
String s = sc.nextLine();//输入字符串