运算符
优先级从大到小排列:
算术运算符>比较运算符>逻辑运算符>赋值运算符
记忆方法(算比逻赋)算看做一个人,逻赋看做一个人,2个人在比较,算占优势
算术运算符
+,-,*,/,%(模运算符),++,–(一元运算符),?:(三元运算符)、次方运算,开方运算
以加法为例 1、(如果是char或者是数字类型):加法
2、(如果是字符串类型):拼接
一元运算符 ++ ,- -
含义:就是本身这个数加1,也就是自增1
记忆口诀:前置++马上加,后置++下一次这个变量出现再加
后置++的案例(仔细看一下打印结果)
public class Demo {
public static void main ( String[ ] args) {
int num= 10 ;
System. out. print ( num++ ) ;
System. out. print ( num++ ) ;
System. out. print ( num) ;
}
}
前置++的案例(仔细看一下打印结果)
public class Demo {
public static void main ( String[ ] args) {
int num= 10 ;
System. out. print ( ++ num) ;
System. out. print ( ++ num) ;
System. out. print ( num) ;
}
}
一元运算符的衍生
+=,-=,*=,/=
例如
int num= 3 ;
num+= 3 ; 可以等效于num= num+ 3 ;
模运算
int num= 10 ;
int sum= num% 3 ;
System. out. print ( sum) ;
if ( num% 2 == 0 ) {
System. out. print ( "sum是偶数" ) ;
} else {
System. out. print ( "sum是奇数" ) ;
}
利用模运算如何取到一个整数的每一个位上的数
记忆理解方法:要取哪个位上的数,就从这个数的最高位开始取模,一直模到要取得那个位,然后把那个位上的取模改成除号即可
例如:234取十位 234%100%10>>>234%100/10(这样就取到了十位上的数)
public class Demo {
public static void main ( String[ ] args) {
int num= 6587 ;
System. out. println ( "个位数是:" + ( num% 1000 % 100 % 10 ) ) ;
System. out. println ( "十位数是:" + ( num% 1000 % 100 / 10 ) ) ;
System. out. println ( "百位数是:" + ( num% 1000 / 100 ) ) ;
System. out. println ( "千位数是:" + ( num/ 1000 ) ) ;
}
}
比较运算符
>,>=,<,<=,==,!=
注意:一个等号是赋值,两个等号是比较
逻辑运算符
||或运算符、&&与运算符、!取反运算符
本人自己的理解: 或运算符就是或者的意思,只要满足一个条件即可
与运算符就是并且的意思,两个条件都要满足
取反运算符顾名思义就是取相反的结果
位运算符
&位与、|位或、^抑或
用二进制进行比较
例如:位移>>/<<
System. out. print ( 3 >> 2 ) ;
3 的二进制是11 ,>> 把箭头看做0 ,一个分界,箭头指向看做方向,
把11 往0 里面移入,2 可以看作移的次数,最后结果是0
System. out. print ( 2 << 3 ) ;
2 的二进制是10 ,<< 把箭头看做0 ,一个分界,箭头看做移动方向,
把10 往外面移出,2 可以看作位移的次数,把10 往左移3 位(0 的外面)
就是10000 ,最后打印结果是2 ^ 4 = 16
三目运算符
效果等效于if(){}
格式是 : 表达式?true:false;
例如
int scores= 61 ;
String str= scores>= 60 ? "及格" : "不及格" ;
if ( scores>= 60 ) {
System. out. print ( "及格" ) ;
} else {
System. out. print ( "不及格" ) ;
}
次方运算
例如
int num= Math. pow ( 2 , 8 ) ;
System. out. print ( num) ;
开方运算
例如
int num= ( int ) ( Math. sqrt ( 4 ) ) ;
System. out. print ( num) ;
分支语句
语法有3种
补充知识点
水仙花数
就是每个位上的数的3次方之和等于原来那个数
例如
371=33+7 3+1^3;//如果等式成立,那么这个371就是水仙花数
闰年
判断是不是闰年
//闰年是%400==0一定是闰年
或者%4==0但是%100!=0 闰年
例如
public class Demo {
public static void main ( String[ ] args) {
Scanner scanner = new Scanner ( System. in) ;
System. out. print ( "请输入一个年份:" ) ;
int num= scanner. nextInt ( ) ;
if ( num% 400 == 0 || num% 4 == 0 && num% 100 != 0 ) {
System. out. println ( "你输入的这个年份是闰年" ) ;
} else {
System. out. println ( "你输入的这个年份不是闰年" ) ;
}
}
}