文章目录
一、介绍
运算符:对字面量或者变量进行操作的
符号
表达式:用
运算符
把字面量或者变量连接起来,符合java语法的式子
就可以称为表达式。
不同的运算符连接的表达式体现的是不同的表达式。
举例说明
int a = 10;
int b = 20;
int c = a+ b;
+
:是运算符
,并且是算数运算符
a + b
:是表达式
,由于+是算数运算符,所以这个表达式叫算数表达式。
二.算数运算符(1/6)
加
、减
、乘
、除
、取模/取余
(1).示范(加、减、乘):
public class yunsuanfu {
public static void main(String[] args) {
// +
System.out.println(3 + 2); // 5
// -
System.out.println(5 - 1); // 4
// *
System.out.println(5 * 5); // 25
}
}
(2).示范(计算时有小数参与):
public class yunsuanfu {
public static void main(String[] args) {
// 如果计算时有小数参与
System.out.println(1.1 + 1.1);
System.out.println(1.1 + 1.01);
System.out.println(1.1 - 1 );
System.out.println(1.1 * 1.01);
}
}
结论:在代码中如果有小数参与计算,结果有可能不精确的。
(3).示范(除):
public class chu {
public static void main(String[] args) {
// 除法
System.out.println(10 / 2);
System.out.println(10 / 3);
System.out.println( 10.0 / 3); // 小数参与计算有可能不精确
}
}
结论:
- 1.整数参与计算,结果只能得到整数
- 小数参与计算,结果有可能是不精确的。
(4).示范(取余):
public class qvmo {
public static void main(String[] args) {
// 取模,取余,实际上也是做除法运算只不过得到的是余数而已
System.out.println(10 % 2); // 0
System.out.println(10 % 3); // 1
}
}
(5).练习:数值拆分
需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
import java.util.Scanner;
public class shuzhichaifeng {
public static void main(String[] args) {
Scanner cs =new Scanner(System.in);
int shu = cs.nextInt();
// 个位 :数值 % 10
int a = shu % 10;
// 十位 : 数值 / 10 % 10
int b =shu /10 %10;
// 百位 : 数值 /100 %10
int c =shu /100 %10;
System.out.println("个位:" + a);
System.out.println("十位:" + b);
System.out.println("百位:" + c);
}
}
(6).数字相加
数字进行计算时,数据类型不一样不能运算,需要
转成
一样的,才能运算。
1.类型转换的分类
(1).隐式转换(自动类型提升)
把一个取值范围小
的数值,转成取值范围大
的数据
示范:
int a = 10;
double b = a;
小结:
练习:
(2).强制转换
如果把一个取值范围大
的数值,赋值给取值范围小
的变量。
是不允许直接赋值的。如果一定这么做就需要加入强制转换。
示范:
public class shuziyunsuan {
public static void main(String[] args) {
double a = 123.5;
int b = (int)a;
System.out.println(b);
}
}
注意:强制转换有可能导致数据发生错误
(7).字符串相加
- 当 “+” 操作中出现字符串时,这个 “+” 是字符串连接符,而不是算数运算符了。会将前后的数据进行拼接,并产生一个新的字符串。
- 连续进行 “+” 操作时,从左到右逐个执行。
示范:
System.out.println(3.7 + "abc"); // 结果 "3.7abc"
System.out.println("abc" + true); // 结果 "abctrue"
System.out.println('中' + "abc" + true); // 结果 “中abctrue”
System.out.println(1 + 2 + "abc" + 2 + 1 ); // 结果 "3abc21"
(8).字符相加
注意:byte short char 三种类型的数据在运算的时候,都会直接提升为int,然后再进行运算。
public class zifuxiangjia {
public static void main(String[] args) {
char c = 'a';
int xiangjia = c + 0 ;
System.out.println(xiangjia);
}
}
为什么是97大家可以去看Ascll
示范:
System.out.println(1 + 'a'); //98
System.out.println('a' + "abc"); //"aabc"
三、自增自减运算符(2/6)
1.基本用法
符号 | 作用 | 说明 |
---|---|---|
++ | 加 | 变量值加1 |
- - | 减 | 变量值减1 |
注意事项:
++和- - 既可以放在变量的前面,也可以放在变量的后面。
如:
int a = 10;
++a;
System.out.println(a); //11
--a;
System.out.println(a); //10
a++;
System.out.println(a); //11
a--;
System.out.println(a); //10
++ 和 - -无论是放在变量的前面还是后面单独写成一行结果是一样的
。
2.参与计算
示范:
public class zizengyunsuanf {
public static void main(String[] args) {
int x = 10;
int y = x++;
int z = ++x;
System.out.println("x:" + x); //12
System.out.println("y:" + y); //10
System.out.println("z:" + z); //12
}
}
四、赋值运算符(3/6)
示范:
public class yunusanf {
public static void main(String[] args) {
//+=
//规则:将左边和右边进行相加,然后再把结果赋值给左边
int a = 10;
int b = 20;
a += b;
System.out.println(a);//30
System.out.println(b);//20
}
}
//细节
// += , -= , *= , /= , %= 底层都隐藏了一个强制类型转换
short s = 1;
//把左边和右边相加,得到的结果2,再赋值给左边的变量
s += 1;
//等同于:s =(short)(s+1);
System.out.println(s);//2
五、关系运算符(4/6)
(关系运算符/比较运算符)的分类:
六、逻辑运算符(5/6)
什么是逻辑运算符?
- 在数学中,一个数据x,大于5,小于15,我们可以这样来进行表示:
5 < x < 15
。- 在Java中,需要把上面的式子先进行拆解,再进行合并表达。
- 拆解为:
x>5
和x<15
- 合并后:
x>5 & x<15
分类:
示范(&
):
public class sizeyunsuanfu {
public static void main(String[] args) {
// 1. & 并且
// 两边都为真结果才为真
System.out.println(true & true); // true
System.out.println(false & false); // false
System.out.println(true & false); // false
System.out.println(false & true); // false
}
}
示范(|
):
public class huo {
public static void main(String[] args) {
// 2. | (或者)
// 两边都为假结果才是假
System.out.println(true | true); // true
System.out.println(false | false); // false
System.out.println(true | false); // true
System.out.println(false | true); // true
}
}
短路逻辑运算符
短路运算符
示范:
public class duanlu {
public static void main(String[] args) {
// 短路逻辑运算符具有短路效果
// 简单理解:当左边的表达式能确定最终的结果,那么右边就不会参与运行了
int a = 10;
int b = 10;
boolean result = ++a < 5 && ++b <5;
System.out.println(result);//false
System.out.println(a); // 11
System.out.println(b); // 10
}
}
练习:数字6
需求:
数字6是一个真正伟大的数字,键盘录入两个整数。
如果其中一个为6,最终结果输出true。
如果它们的和为 6 的倍数。最终结果输出True。
其他情况都是 false。
示范:
import java.util.Scanner;
public class shuzi {
public static void main(String[] args) {
Scanner cs =new Scanner(System.in);
int a = cs.nextInt();
int i = cs.nextInt();
boolean pd = a == 6 || i == 6 || (a + i) % 6 == 0 ;
System.out.println(pd);
}
}
七、三元运算符(6/6)
什么是三元运算符?
1.需求:定义一个变量记录一个整数
int number = 10;
System.out.println(number);
2.需求:定义一个变量记录两个整数的较大值。
(拿两个整数进行比较)
三元运算符作用:可以进行判断,根据判断的结果得到不同的内容。
public class sanyuan {
public static void main(String[] args) {
//分析:
//方法一:
//1.定义两个变量记录两个整数
int number1 = 10;
int number2 = 20;
//2.使用三元运算符获取两个整数的较大值
//格式: 关系表达式 ? 表达式1 : 表达式2 ;
//整个三元运算符的结果必须要被使用
int max = number1 >number2 ? number1 :number2;
System.out.println(max);
//方法2:
System.out.println(number1 >number2 ? number1 :number2);
}
}