算数运算符
运算符:对常量或者变量进行操作的符号
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 参看小学加法 |
- | 减 | 参看小学减法 |
* | 乘 | 参看小学乘法,与“×”相同 |
/ | 除 | 参看小学除法,与“÷”相同 ,取商 |
% | 取余 | 参看小学除法,与“÷”相同 ,余数 |
注意事项:
/和%的区别: 两个数据做除法,/ 取结果的 商,% 取结果的 余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
public class OperatorDome{
public static void main(String[] rags){
int a = 6;
int b = 4;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b); //取余
//除法得到的是商,取余得到余数
//整数相除得到的是整数,想要得到小数,必须要有浮点数
System.out.println(6 / 4.0);
}
}
字符"+"操作
/*
等级顺序:byte,short,char > int > long > float > double
*/
public class OperatorDome2{
public static void main(String[] rags){
int i = 10;
char c = 'a'; //'a'的值是97
c = '0'; //'0'的值是48
c = 'A'; //'A'的值是48
System.out.println(i + c);
//char ch = i + c; 错误: 不兼容的类型: 从int转换到char可能会有损失
// char类型会自动提升为int类型
int j = i + c;
System.out.println(j);
//int k = 10 + 13.14; float等级在int之上
double k = 10 + 13.14;
System.out.
}
}
当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。
在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。
/*
字符串的+操作
*/
public class OperatorDome3{
public static void main(String[] rags){
System.out.println("it" + "hello");
System.out.println("你好" + 666);
System.out.println(666 + "ha");
System.out.println("hello" + 6 + 66); //hello666
System.out.println(1 + 99 + "hello"); //100hello
}
}
自增自减运算符
符号 | 作用 | 说明 |
---|---|---|
++ | 自增 | 变量的值加1 |
- - | 自减 | 变量的值减1 |
注意事项:
-
++和-- 既可以放在变量的后边,也可以放在变量的前边。
-
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
-
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者–。
参与操作的时候,如果放在变量的前边,先拿变量做++或者–,后拿变量参与操作。
最常见操作:单独使用
public class OperatorDome5{
public static void main(String[] rags){
//定义变量
int i = 10;
System.out.println("i:" + i);
//单独使用,两种结果一样,都是11
//i ++;
//++ i;
//System.out.println("i:" + i) 11
//参与操作使用,放在变量后面,先拿变量参与操作,后拿变量进行 ++ 或 --
//参与操作使用,放在变量前面,先拿变量做++或--,后拿变量参与操作
int j = i++; // 11,10 i=(i +1) , j = (i = 10)
//int j = ++i; // 11,11 i=(i +1) , j = (i + 1) = 11
System.out.println("i:" + i);
System.out.println("j:" + j);
}
}
关系运算符
符号 | 说明 |
---|---|
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
public class OperatorDome6{
public static void main(String[] rags){
//
int i = 10;
int j = 20;
int k = 10;
//==
System.out.println(i == j); //flase
System.out.println(i == k); //true
System.out.println("等于----------------------");
//!=
System.out.println(i != j); //true
System.out.println(i != k); //flase
System.out.println("不等于----------------------");
//>
System.out.println(i > j); //flase
System.out.println(i > k); //flase
System.out.println("大于----------------------");
//>=
System.out.println(i >= j); //flase
System.out.println(i >= k); //true
System.out.println("大于等于----------------------");
//<
System.out.println(i < j); //true
System.out.println(i < k); //flase
System.out.println("小于----------------------");
//<=
System.out.println(i <= j); //true
System.out.println(i <= k); //true
System.out.println("小于等于----------------------");
}
}
逻辑运算符
逻辑运算符,是用来连接关系表达式的运算符。
当然,逻辑运算符也可以直接连接布尔类型的常量或者变量
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false |
| | 逻辑或 | a|b,a和b都是false,结果为false,否则为true |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
public class OperatorDome7{
public static void main(String[] rags){
//定义变量
int i = 10;
int j = 20;
int k = 30;
//& 有flase则false
System.out.println( (i > j) & (i> k)); //flase & flase
System.out.println( (i < j) & (i> k)); //true & flase
System.out.println( (i > j) & (i< k)); //flase & true
System.out.println( (i < j) & (i< k)); //ture & true
System.out.println("-------------------");
//| 有true则true
System.out.println( (i > j) | (i> k)); //flase | flase
System.out.println( (i < j) | (i> k)); //true | flase
System.out.println( (i > j) | (i< k)); //flase | true
System.out.println( (i < j) | (i< k)); //ture | true
System.out.println("-------------------");
//^ 相同为flase,不同为true
System.out.println( (i > j) ^ (i> k)); //flase ^ flase
System.out.println( (i < j) ^ (i> k)); //true ^ flase
System.out.println( (i > j) ^ (i< k)); //flase ^ true
System.out.println( (i < j) ^ (i< k)); //ture ^ true
System.out.println("-------------------");
//! 取反,与结果相反
System.out.println( (i > j)); //flase
System.out.println( !(i > j)); //flase
System.out.println( !!(i > j)); //flase
}
}
短路逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 作用和&相同,但是有短路效果 |
|| | 短路或 | 作用和|相同,但是有短路效果 |
-
逻辑与**&**,无论左边真假,右边都要执行。
短路与**&&,如果左边为真,右边执行;如果左边为假,右边不执行**。
-
逻辑或**|**,无论左边真假,右边都要执行。
短路或**||,如果左边为假,右边执行;如果左边为真,右边不执行**。
最常用的逻辑运算符:&&,||,!
public class OperatorDome7{
public static void main(String[] rags){
//定义变量
int i = 10;
int j = 20;
int k = 30;
// & 与 &&;结论一样 ;
//System.out.println( (i ++ > 100) & (j ++ >100); //flase & flase
System.out.println( (i ++ > 100) && (j ++ > 100)); //flase && flase
System.out.println("i:" + i ); //11
System.out.println("j:" + j ); //20 未执行++ , **左边为假,右边不执行**
}
}
三元运算符
格式:关系表达式 ? 表达式1 : 表达式2;
范例:a > b ? a : b;
计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
public class OperatorDome8{
public static void main(String[] rags){
//定义两个变量
int a = 10;
int b = 20;
//获取两个数据中的较大值
int max = a > b ? a:b;
//输出结果
System.out.println("max:" + max);
}
}