运算符
算数运算符
+ | - | * | / | % | ++ | – |
---|---|---|---|---|---|---|
求和 | 求差 | 求乘积 | 求商 | 求余数 | 自加1 | 自减1 |
- 注意:运算符有优先级,在一个表达式中,可以通过添加括号的方式来提升运算符的优先级
关于加减乘除取余的简单栗子:
public class One01
{
publc static void main(String[] args){
int i = 10;
int j = 3;
System.out.println(i + j);//输出结果为:13
System.out.println(i - j);//输出结果为:7
System.out.println(i * j);//输出结果为:30
System.out.println(i / j);//输出结果为:3
System.out.println(i % j);//输出结果为:1
}
}
像++和–属于单目运算符,可以出现在单个变量后面或前面,对其进行算数运算
int k = 10;
k ++;
System.out.println(k);//输出结果为:11
int l = 10;
++ y;
System.out.println(y);//输出结果为:11
//++出现在变量后:
int a = 100;
int b = a ++;//注意先算 b = ,再算 a ++
System.out.println(b);//输出结果为:100
//++出现在变量前:
int m = 10;
int n = ++ m;//注意先算 m ++ ,再算 n =
System.out.println(n);//输出结果为:11
//变形(与上面的同一原理)
int e = 10;
System.out.println(e ++);//输出结果为:10
System.out.println(++ e);//输出结果为:11
关系运算符
> | >= | < | <= | == | != |
---|---|---|---|---|---|
大于 | 大于等于 | 小于 | 小于等于 | 等于 | 不等于 |
- 注意:
= 是赋值运算符
== 是关系运算符
关系运算符结果一定是布尔类型:true / false
int a = 100;
int b = 100;
System.out.println(a > b);//输出结果为:false
System.out.println(a >= b);//输出结果为:true
System.out.println(a < b);//输出结果为:false
System.out.println(a <= b);//输出结果为:true
System.out.println(a == b);//输出结果为:true
System.out.println(a != b);//输出结果为:flase
逻辑运算符
- 逻辑与 &
- 逻辑或 |
- 逻辑非 !
- 逻辑异或 ^(相同为假,不同为真)
- 短路与 &&
- 短路或 ||
- 注意:
1、逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型
2、短路与和逻辑与的运算结果是相同的,只不过短路与存在短路现象
3、短路或和逻辑或的运算结果是相同的,只不过短路或存在短路现象
int x = 100;
int y = 10;
//逻辑与
System.out.println( x < y & ++x < y );//与运算前面为假则全为假,但是对于逻辑与则要计算两个算子
System.out.println(x);//输出结果为:101
//短路与
System.out.println( x < y && ++x < y );//与运算前面为假则全为假,但是对于短路与得到结果就不会计算后面的算子了
System.out.println(x);//输出结果为:100
/*
从某个角度看,短路与不运行后面的代码,可以提高执行效率
但对于某些特殊的业务逻辑当中,要求运算符两边的算子必须全部执行,此时必须使用逻辑与。
*/
//逻辑或和短路或也是相同的原理
赋值类运算符
-
基本的赋值运算符
=
赋值类运算符优先级:先执行登号右边的表达式,将执行结果赋值给左边的变量 -
扩展的赋值运算符(不敢变运算类型)
+=
-=
*=
/=
%=
public class Test01
{
public static void main(String[] args)
{
int i = 10;
System.out.println(i);//赋值10给变量i
i = i + 5;
System.out.pringln(i);//赋值i+5给变量i,输出结果为15
i += 5;//等同于 i = i + 5;
i -= 5;//等同于 i = i - 5;
}
}
***注意:进行不同类型的赋值运算要添加强制转换符。***(可能损失精度)
字符串连接运算符
1、+运算在java语言中有两个作用:
- 加法运算,求和计算
- 字符串的连接运算
2、当“+”运算符的两边都是数字的时候,一定进行加法运算。
3、当“+”运算符两边的数据有一个是字符串的话,就一定会进行字符串的连接
public class Test02
{
public static void main(String[] args)
{
int a = 10;
int b = 20;
System.out.println(a + "+" + b + "=" + (a + b));
//最前面的变量a和b都在引号外,是变量变量和字符串+之间要用 + 连接,输出结果为:10 + 20 = 30
}
}
三目运算符
1、语法规则:
布尔表达式 ? 表达式1 : 表达式2
2、执行原理:
当布尔表达式为真的时候,执行表达式1
当布尔表达式为假的时候,执行表达式2
public class Test03
{
public static void main(String[] args)
{
int a = 10;
int b = 20;
System.out.println((a < b) ? b : a);//输出a和b中的最大值
System.out.println((a < b) ? a : b);//输出a和b中的最小值
}
}
判断语句
if 语句
- 格式:
if(布尔表达式)
{
核心语句;
}
注意:对于java语句中的if 来说,只要有一个分支执行,整个if 语句全部结束。(注意书写规范,便于语句的使用)
接受用户键盘输入
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入数字:");//输出后不自动换行
int age = s.nextInt();
System.out.println(age);//输出用户输入的数字
switch语句
-
语法结构:
switch(int或String类型的字面值或变量)
{
case int或String类型的字面值或变量 :
java语句;
······
break;
case int或String类型的字面值或变量 :
java语句;
······
break;
······
default :
java语句;
······
} -
执行原理:
switch后面的小括号当中的“数据”和case后面的“数据”进行一一匹配,匹配成功的分支执行
按照自上而下的顺序依次匹配
匹配成功的分支执行,分支当中最后有“break”语句的话,整个switch语句终止,若没有则进入下一个分支(不进行匹配),这种现象叫做case穿透现象,因此使用break语句可以避免穿透现象的发生。 -
注意:byte,short,char可以自动转换成int类型,固可以直接写在switch和case后面
-
case 可以合并
case 1: case 2 : case 3:
System.out.println(“Hello World !”);