运算符
基本运算符 + - * / %
- 除法 /
- 注意int / int结果还是int,所以如果要得出准确值最好用double
- 0不能做除数,会引起运行时异常(即编译可以通过,运行时出问题) 会出现如下提示,可以帮助发现当前函数异常种类和异常出现的行数
(除了运行时异常外,还有编译时异常,自定义异常,一般用try catch处理异常,后续会展开讲)
- 取模 取余 %
- 取模需要注意的是在C语言当中取余对象只能是整型,而JAVA中可以取小数的余数 11.5%2.0=1.5
C语言中
Java中可以正常编译
- 增量赋值运算符 += -= *= /= %=
a+=i; //相当于a=a+i;
- 自增 / 自减运算符++ –
- Java中尽量使用后置++
- 如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.
- 如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值.
关系运算符== != >= <= < >
关系运算符表达式返回值都是boolean类型
int a=2;
int b=5;
System.out.println(a==b);
system.out.println(5<a<10);
因为5<a先返回true或者false ,true和false是boolean类型无法和10比较
逻辑运算符&& || !
- 左右两边操作数和返回值类型都是boolean类型
- 注意短路与和短路或的使用
System.out.println(10 > 20 && 10 / 0 == 0); // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0); // 打印 true
10/0==0本来应提示错误,但是程序可以正常执行说明10/0没有被执行,由此可得:
1. 短路与&&若表达式1为false则表达式2不执行
2. 短路或||若表达式1为true则表达式2不执行
- & 按位与 和 | 按位或
不建议使用,& 和 | 如果操作数为 boolean 的时候, 也表示逻辑运算. 但是和 && 以及 || 相比, 它们不支持短路求值
位运算符
- &按位与 |按位或 ^按位异或 ~按位取反
和C语言中用法一样,位操作符按二进制位进行计算
移位运算
左移<< 右移>> 无符号右移>>>
- 左移相当于乘法 左移n位 * 2^n
- 右移相当于除法 看符号位 1补1 0补0 右移n位 /2^n
- 无符号右移>>> 不用看符号位 不管最高为是1还是0 统统补0
- 没有无符号左移
- 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
条件运算符 三目
表达式1?表达式2:表达式3
- 当表达式1为true则整个表达式的值为表达式2的值,当为false时整个表达式的值是表达式3的值
- Java中唯一的三目运算符
- // 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b
输入输出
输出
不建议使用printf
- System.System.out.println(msg); // 输出一个字符串, 带换行
- System.out.print(msg); // 输出一个字符串, 不带换行
- System.out.printf(format, msg); // 格式化输出
输入
char i=(char)System.in.read(); System.in 代表键盘 输入
如果是编译时期的异常 必须处理后才能使用
import java. import相当于C语言中的include 引入一个包
由于System.in.read 的使用太过麻烦 所以引用Scanner
import java.util.Scanner; 引入包 util中放的都是工具类的东西
Scanner scan=new Scanner(System.in);
打开一个资源记得要关闭
ctrl+z对于键盘来说是正常结束
ctrl+c是终止程序 一般程序陷入死循环时使用
产生随机数