运算符:
一、算数运算符
+ :在操作数值、字符、字符串时,其结果是不同的,当两个字符串相加,得到的Ascll码值;当两个字符串相加的时候,表示字符串的拼接操作,从而组成新的字符串。
/ :整数在做除操作时,得到的结果仍为整数(小数部分忽略),当整数除以 0 时,会报算术异常。
% :取余,余数的符号忽略不计,结果正负取决于被余数。
都只能操作变量,不能操作常量
++:表示当前操作的变量累加 1
-- :表示当前操作的变量自减 1
自增: ++ ,递增操作符,是变量值增加 1 ,有前后置之分,只能操作变量。
自减: - - ,递增操作符,是变量值减少 1 ,有前后置之分,只能操作变量。
后结果进行计算
前的值(原始值)进行计算
package Test;
/**
*
* @author FYDragon
*
*/
public class TestDemo {
public static void main(String[] args) {
int num1 = 1;
System.out.println(num1++);
int num2 = 1;
System.out.println(++num2);
}
}
结果:
下面我们开分析一道面试题:
package Test;
/**
*
* @author FYDragon
*
*/
public class TestDemo {
public static void main(String[] args) {
int i = 5;
i++;
System.out.println("i = "+i); //6
++i;
System.out.println("i = "+i); //7
System.out.println("--------");
int a = ++i;
System.out.println("a = "+a); //8
System.out.println("i = "+i); //8
int b = i++;
System.out.println("b = "+b); //8
System.out.println("i = "+i); //9
}
}
结果
你们做对了吗?其实很简单,只要注意好加 1 的先后顺序就好。
二、三目运算符
语法格式:X ? Y : Z
其中,X为 boolean表达式,先计算X的值,如果为true,整个三目运算表达式结果是Y,如果为 false,整个三目运算表达式结果是 Z。
举个例子:
package Test;
/**
*
* @author FYDragon
*
*/
public class TestDemo {
public static void main(String[] args) {
double num = 3.51;
int num1 = (int)num;
double num2 = num - num1;
int result = num2 >=0.5 ? num1+1 : num1 ;
System.out.println(result);
}
}
因为num是double型,强制转换为int型 即 num1 = 3 ;num2 = 0.51;所以num2 >=0.5 成立,结果为true。所以result的结果为num1+1,为 4。
再写一个小案例,给出一个总共有51条数据,要求每页最多10条数据,求出总共有多少页
package Test;
/**
*
* @author FYDragon
*
*/
public class TestDemo {
public static void main(String[] args) {
int totalCount = 51;
int pageSize = 10; //每页最多10条数据
//总页数
int totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount/pageSize +1;
System.out.println(totalPage);
}
}
结果:
和上一个题思路一样啦,这里就不多解释了。
三、逻辑运算符
& :表示并且,当操作数A和数B都为true时,结果才为true。否则结果为false。
&&:和&结果相同,有短路的效果,如果操作数A为false,则结果就为false,不继续执行操作数B。
| :表示或者,A和B都为false时,结果为false,只要双方有一个为true,结果就是true。
| | :和 | 结果相同,具有短路效果,左边操作数A为true,结果就为true,不继续执行操作数B。
^ (异或):判断A 和 B是否不同,不同为 true,相同则为false。