运算符的分类
算术运算符
算数运算符
+ - * / % ++ --
++,--的用法
++:自加 对原有的数据进行+1
a++ 先赋值后加
++a 先加后赋值
--:自减 对原有的数据进行-1
a-- 先赋值后减
--a 先减后赋值
int x = 4 ;
int y = ( x++ ) + ( ++ x) + ( x* 10 ) ;
赋值运算符
基本赋值运算符
=
复合赋值运算符
= += -= *= /= %=
a += b;[等价a = a + b;]
byte a = 1 ;
b += 2 ;
b++ ;
short s = 1 ; s = s+ 1 ;
short s = 1 ; s += 1 ;
比较运算符
比较运算符
== != > < >= <= instanceof
注意事项:
比较运算符的结果都是boolean类型
System. out. println ( 7 > 8 ) ;
System. out. println ( 7 <= 8 ) ;
逻辑运算符
逻辑运算符
&(并且) &&(短路与) |(或者) ||(短路或) !(非) ^(异或)
注意事项:
逻辑运算符一般用于boolean类型的表达式或值
结论:
&(并且):有false则false 左边是false 右边继续执行
&&(短路与):有false则false 左边是false 右边不执行
|(或者):有true则true 左边是true 右边继续执行
||(短路或):有true则true 左边是true 右边不执行
!(非):非false则true 非true则false
^(异或):相同为false 不同为true
情侣关系:男男 女女 男女 女男
一个数据被另一个数据位异或两次,该数本身不变
int x = 1 , y = 1 ;
if ( x++ == 2 & ++ y== 2 ) {
x = 7 ;
}
System. out. println ( "x=" + x+ ",y=" + y) ;
int x = 1 , y = 1 ;
if ( x++ == 2 && ++ y== 2 ) {
x = 7 ;
}
System. out. println ( "x=" + x+ ",y=" + y) ;
int x = 1 , y = 1 ;
if ( x++ == 1 | ++ y== 1 ) {
x = 7 ;
}
System. out. println ( "x=" + x+ ",y=" + y) ;
int x = 1 , y = 1 ;
if ( x++ == 1 || ++ y== 1 ) {
x = 7 ;
}
System. out. println ( "x=" + x+ ",y=" + y) ;
a= a^ b;
b= a^ b;
a= a^ b;
位运算符
位运算符
&(与) |(或) ^(异或) ~(按位取反) <<(左移) >>(右移) >>>(无符号右移)
注意事项:
位运算是直接对二进制补码进行运算 运算效率高
结论:
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 0变1 1变0 符号位也包含在内取反
<<: 4<<2 相当于 4*2^2=16
>>: 16>>3 相当于 16/2^3=2
三目运算符
三目运算符
(关系表达式) ? 表达式1 : 表达式2;
规则:
关系表达式的值为true 则运算结果是表达式1
关系表达式的值为false 则运算结果是表达式2
int a = 10 ;
int b = 20 ;
int max = a > b ? a : b;
键盘录入
导包
import java.util.Scanner;
位置:在class上面。
创建键盘录入对象
Scanner sc = new Scanner(System.in);
通过对象获取数据
int x = sc.nextInt();
import java. util. Scanner;
public class Test {
public static void main ( String[ ] args) {
Scanner sc = new Scanner ( System. in) ;
System. out. println ( "输入第一个整数" ) ;
int a = sc. nextInt ( ) ;
System. out. println ( "输入第二个整数" ) ;
int b = sc. nextInt ( ) ;
int max = a > b ? a : b;
System. out. println ( "最大值=" + max) ;
}
}