运算符:
算术运算符:
- / 取除法运算后的商 , % 取除法运算后的余数
- 整数相除只能得到整数
- 如果两个数据中有一个为小数,除后的结果也为小数
++, --运算符:
单独使用:
放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
参与运算使用:
放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算 ,再自增或者自减。
作用:就是对变量进行自增1或者自减1。
自增减Test
class OperatorTest {
public static void main(String[] args) {
int a = 10;
int b = 10;
int c = 10;
a = b++; //a=10,b=11,c=10
c = --a; //a=9,b=11,c=9
b = ++a; //a=10,b=10,c=9
a = c--; //a=9,b=10,c=8
}
}
写代码时,如果对某些运算符优先级持有怀疑态度,建议加括号。
+=test
面试题:
short s=1;
s = s+1;
s+=1;
上面两个代码有没有问题,如果有,哪里有问题?
第一个会先转为int,损失了精度,报错
为什么第二个木有问题呢?
扩展的赋值运算符其实隐含了一个强制类型转换。
s += 1;
不是等价于 s = s + 1;
而是等价于 s = (s的数据类型)(s + 1);
逻辑异或:^ 相同为false,不同为true。举例,情侣关系:
- flase
男男,女女 - true
-女男,男女
位运算符
正数的原反补都相同
面试题:
请用最有效率的方式写出计算2乘以8的结果?
2 * 8
2 << 3
class OperatorDemo3 {
public static void main(String[] args) {
//把<<左边的数据乘以2的移动次幂
System.out.println(3 << 2); //3*2^2 = 3*4 = 12;
// 把>>左边的数据除以2的移动次幂
System.out.println(24 >> 2); //24 / 2^2 = 24 / 4 = 6
System.out.println(24 >>> 2);
}
}
三目运算符
练习:
获取两个整数中的最大值
int x = 100;
int y = 200;
int max = (x > y? x: y);
System.out.println("max:"+max);
--------------------------------------------------
获取三个整数中的最大值
int a = 10;
int b = 30;
int c = 20;
int temp = (a>b)? a: b;
int max = (temp>c)? temp: c;
System.out.println("max:"+max);
键盘录入
/*
我们如何实现键盘数据的录入呢?
A:导包
格式:
import java.util.Scanner;
B:创建键盘录入对象
格式:
Scanner sc = new Scanner(System.in);
C:通过对象获取数据
格式:
int x = sc.nextInt();
*/
import java.util.Scanner;
class ScannerDemo {
public static void main(String[] args) {
//创建键盘录入数据对象
Scanner sc = new Scanner(System.in);
System.out.println("请你输入一个数据:");
int x = sc.nextInt();
System.out.println("你输入的数据是:"+x);
}
}
测试时要注意两个地方:1,错误数据。2,边界数据
来源:CSDN
作者:风中的默默
链接:https://blog.csdn.net/weixin_44104529/article/details/103585721