1 算数操作符
(1) 基本算数操作符
+ - * /
public class HelloWorld {
public static void main(String[] args) {
int i = 10;
int j = 5;
int a = i+j;
int b = i - j;
int c = i*j;
int d = i /j;
}
}
(2) 任意运算单元的长度超过int
如果有任何运算单元的长度超过int,那么运算结果就按照最长的长度计算
int a = 5;
long b = 6;
a+b
结果类型是long
public class HelloWorld {
public static void main(String[] args) {
int a = 5;
long b = 6;
int c = (int) (a+b); //a+b的运算结果是long型,所以要进行强制转换
long d = a+b;
}
}
(3) 任意运算单元的长度小于int
如果任何运算单元的长度都不超过int,那么运算结果就按照int来计算
byte a = 1;
byte b= 2;
a+b
结果类型是int
public class HelloWorld {
public static void main(String[] args) {
byte a = 1;
byte b= 2;
byte c = (byte) (a+b); //虽然a b都是byte类型,但是运算结果是int类型,需要进行强制转换
int d = a+b;
}
}
(4) %取模
public class HelloWorld {
public static void main(String[] args) {
int i = 5;
int j = 2;
System.out.println(i%j); //余数为1
}
}
(5) 自增 自减
++ -- 在原来的基础上增加1或者减少1
public class HelloWorld {
public static void main(String[] args) {
int i = 5;
i++;
System.out.println(i);//输出为6
}
}
(6) 自增 自减操作符置前以及置后的区别
i++;
先取值,再运算++i;
先运算,再取值
public class HelloWorld {
public static void main(String[] args) {
int i = 5;
System.out.println(i++); //输出5
System.out.println(i); //输出6
int j = 5;
System.out.println(++j); //输出6
System.out.println(j); //输出6
}
}
2 关系操作符
- > 大于
- >= 大于或等于
- < 小于
- <= 小于或等于
- == 是否相等
- != 是否不等
public class HelloWorld {
public static void main(String[] args) {
int a = 5;
int b = 6;
int c = 5;
System.out.println(a>b); //返回 false
System.out.println(a>=c); //返回 true
System.out.println(a==b); //返回false
System.out.println(a!=b);//返回true
}
}
3 逻辑操作符
(1) 长路与和短路与
无论长路与
&
还是短路与&&
,两边的运算单元都是布尔值
- 都为真时,才为真
- 任意为假,就为假
区别
- 长路与
&
两侧,都会被运算- 短路与
&&
只要第一个是false,第二个就不进行运算了
public class HelloWorld {
public static void main(String[] args) {
//长路与 无论第一个表达式的值是true或者false,第二个的值,都会被运算
int i = 2;
System.out.println( i== 1 & i++ ==2 ); //无论如何i++都会被执行,所以i的值变成了3
System.out.println(i);
//短路与 只要第一个表达式的值是false的,第二个表达式的值,就不需要进行运算了
int j = 2;
System.out.println( j== 1 && j++ ==2 ); //因为j==1返回false,所以右边的j++就没有执行了,所以j的值,还是2
System.out.println(j);
}
}
(2) 短路或和长路或
无论长路或
|
还是短路或||
,两边的运算单元都是布尔值
- 都为假时,才为假
- 任意为真,就为真
区别
- 长路或
|
两侧都会被运算- 短路或
||
只要第一个是true的,第二个就不进行运算了
public class HelloWorld {
public static void main(String[] args) {
//长路或 无论第一个表达式的值是true或者false,第二个的值,都会被运算
int i = 2;
System.out.println( i== 1 | i++ ==2 ); //无论如何i++都会被执行,所以i的值变成了3
System.out.println(i);
//短路或 只要第一个表达式的值是true的,第二个表达式的值,就不需要进行运算了
int j = 2;
System.out.println( j== 2 || j++ ==2 ); //因为j==2返回true,所以右边的j++就没有执行了,所以j的值,还是2
System.out.println(j);
}
}
(3) 取反
取反
!
- 真变为假
- 假变为真
public class HelloWorld {
public static void main(String[] args) {
boolean b = true;
System.out.println(b); //输出true
System.out.println(!b);//输出false
}
}
(4) 异或^
异或
^
- 不同,返回真
- 相同,返回假
public class HelloWorld {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a^b); //不同返回真
System.out.println(a^!b); //相同返回假
}
}
4 位操作符
略
5 赋值操作符
赋值操作
- =
对本身进行运算,并赋值
- +=
- -=
- *=
- /=
- %=
- &=
- |=
- ^=
- <<=
- >>=
- >>>=
(1) 赋值操作
赋值操作的操作顺序是从右到左
int i = 5+5;
- 首先进行
5+5
的运算,得到结果10
,然后把10
这个值,赋给i
public class HelloWorld {
public static void main(String[] args) {
int i = 5+5;
}
}
(2) 对本身进行运算,并赋值
+=即自加
i+=2;
i=i+2;
其他的 -= , *= , /= , %= , &= , |= , ^= , >= , >>>= 都是类似,不做赘述
public class HelloWorld {
public static void main(String[] args) {
int i =3;
i+=2;
System.out.println(i);
int j=3;
j=j+2;
System.out.println(j);
}
}
6 三元操作符
表达式?值1:值2
- 如果表达式为真 返回值1
- 如果表达式为假 返回值2
public class HelloWorld {
public static void main(String[] args) {
int i = 5;
int j = 6;
int k = i < j ? 99 : 88;
// 相当于
if (i < j) {
k = 99;
} else {
k = 88;
}
System.out.println(k);
}
}
7 Scanner
(1) 使用Scanner读取整数
使用Scanner类,需要在最前面加上
import java.util.Scanner;
表示导入这个类,才能够正常使用
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
System.out.println("第一个整数:"+a);
int b = s.nextInt();
System.out.println("第二个整数:"+b);
}
}
(2) 使用Scanner读取浮点数
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
float a = s.nextFloat();
System.out.println("读取的浮点数的值是:"+a);
}
}
(3) 使用Scanner读取字符串
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String a = s.nextLine();
System.out.println("读取的字符串是:"+a);
}
}
(4) 读取了整数后,接着读取字符串
- 如果在通过
nextInt()
读取了整数后,再接着读取字符串,读出来的是回车换行:"\r \n",因为nextInt
仅仅读取数字信息,而不会读走回车换行"\r \n".- 如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次
nextLine()
,第一次是取走整数,第二次才是读取真正的字符串
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int i = s.nextInt();
System.out.println("读取的整数是"+ i);
String rn = s.nextLine();
String a = s.nextLine();
System.out.println("读取的字符串是:"+a);
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。