🔔博客主页👉 @Nerhimisum.code.com
🎁欢迎关注👍点赞👉 留言⭐️收藏
🎁系列专栏持续更新👉 JavaSE学习
🎁欢迎大佬指正,一起学习,共同进步!
1. 运算符与表达式
运算符和表达式是编程的基础,它们用于操作数据和执行计算。Java支持多种类型的运算符,包括算术运算符、赋值运算符、比较运算符和逻辑运算符。
【1】运算符:对字面量或者变量进行操作的符号。
【2】表达式:用运算符把字面量或者变量连接起来,符合Java语法的式子。
下面一一介绍Java中的运算符及对应的表达式
1.1算术运算符
1.1.1 算术运算符介绍
算术运算符:用于执行基本的数学运算,包括:
- 1.加法(
+
) - 2.减法(
-
) - 3.乘法(
*
) - ❗️4.除法(
/
)
//只有整数参与除法运算时,结果取整
System.out.println(10/3);//3
//有小数参与时,结果包含小数部分
System.out.println(10.0/3)//3.333……5;
-❗️ 5.取模\取余(%
):其实也是一种除法,只是结果取余。
System.out.println(10%2);//0
System.out.println(10.0/3)//1;
/
与 %
在许多简单算法中经常出现,例如拆解数值,找素数等
import java.util.Scanner;
public class number {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = sc.nextInt() ;
while(num!=0){
System.out.println(num%10);//%取余,取出新num的个位
num=num/10;// /整除,产生新的num(原num去除个位上的数字)
}
}
}
1.✨ 基于小数在计算机中的存储模式,有小数参与的计算结果可能不精确,想详细了解的可以看这位大佬的文章 👉 http://t.csdnimg.cn/lwlMX
2.像上述这样由算术运算符构成的表达式,称为算术表达式。
1.1.2 +
运算详解
- 字符串的
+
操作:只要有"字符串"
参与+
运算,此时不是算术运算符,而是字符串连接符(将前后的数据拼接,产生新的字符串)
"123" + "123" == "123123";//字符串间
"asd"+"fgh" == 'asdfgh';
123 + "asd" == "123asd"//数字与字符串
-
连续的+操作按从左往右的顺序进行。
-
字符相加
当出现字符+字符
或字符+数字
时,计算机通过ASC||码表查询到字符对应的数字再进行计算。
'A' + 2 == 'C';//A在表中对应65,65+2=67在表中对应C
1.1.3 自增自减运算符
自增(++)
和自减(--)
运算符用于递增或递减变量的值。这些运算符可以放在变量前面(前缀形式),也可以放在变量后面(后缀形式)。
1.前缀形式的自增(自减)运算符(++a,- -a)会先将变量的值增加(减少)1,再赋值。
2.后缀形式的自增(自减)运算符(a++,a–)会先赋值,然后再将变量的值增加(减少)1。
public class Example {
public static void main(String[] args) {
int a = 5;
// 前缀自增
int b = ++a; // a先自增1,然后a的值赋给b,此时a为6,b为6
// 前缀自减
int c = --a; // a(6)先自减1,然后a的值赋给c,此时a为5,c为5
// 后缀自增
int d = a++; // 先将a(5)当前的值赋给d,然后a自增1,此时a为6,d为5
// 后缀自减
int e = a--; // 先将a(6)当前的值赋给e,然后a自减1,此时a为5,e为6
System.out.println("b = " + b); // 输出 6
System.out.println("c = " + c); // 输出 5
System.out.println("d = " + d); // 输出 5
System.out.println("e = " + e); // 输出 6
}//代码是从上往下依次执行,在这过程中a的值也在不断变化,并继承到下一行语句
}
1.2赋值运算符
赋值运算符:用于将一个值赋给一个变量。
运算符 | 描述 | 示例 |
---|---|---|
= | 将右侧表达式的值赋给左侧变量 | int x = 5; |
+= | 将右侧表达式的值加到左侧变量上 | int x = 5; x += 3; // x现在的值为8 |
-= | 将右侧表达式的值从左侧变量减去 | int x = 5; x -= 2; // x现在的值为3 |
*= | 将右侧表达式的值与左侧变量相乘 | int x = 5; x *= 2; // x现在的值为10 |
/= | 将左侧变量的值除以右侧表达式的值 | int x = 10; x /= 2; // x现在的值为5 |
%= | 将左侧变量的值取模右侧表达式的值 | int x = 10; x %= 3; // x现在的值为1 |
a + = 1 //相当于a = a + 1;
a - = 1 // 相当于 a=a-1;
a *= 1 // 相当于 a=a*1;//……依此类推
1.3 比较运算符
比较运算符(关系运算符):用于比较两个值的大小。
运算符 | 描述 |
---|---|
== | 检查两个操作数是否相等 |
!= | 检查两个操作数是否不相等 |
> | 检查左操作数是否大于右操作数 |
< | 检查左操作数是否小于右操作数 |
>= | 检查左操作数是否大于或等于右操作数 |
<= | 检查左操作数是否小于或等于右操作数 |
1.4 逻辑运算符
逻辑运算符:用于执行逻辑操作。
例如,a && b 用于比较两个条件是否都为 true
运算符 | 描述 |
---|---|
& | 逻辑与,两个条件同时为真时返回true |
| | 逻辑或,两个条件有一个为真时返回true |
! | 逻辑非,取反操作,true变为false,false变为true |
^ | 逻辑异或,相同为false,不同为true |
短路逻辑运算符
有时为了缩短代码运行时间成本,在执行逻辑判断时只要左边的表达式能够确定最终结果就不会判断右边式子而是直接输出结果,这种具有短路功能的运算符叫做短路逻辑运算符。
短路逻辑运算符 | 描述 |
---|---|
&& | 短路与,运行结果与& 相同,但具有短路效果。 |
|| | 短路或,运行结果与| 相同,但具有短路效果。 |
1.5 三元运算符
Java中的三元运算符是一个条件运算符,它根据条件表达式的真假值选择两个表达式中的一个来执行。
格式:关系表达式 ?表达式1:表达式2
int a = 10;
int b = 20;
int max = (a > b) ? a : b; // 如果a大于b,max被赋值为a,否则被赋值为b
/*//等同于if-else语句
int max;
if (a > b) {
max = a;
} else {
max = b;
}
*/
2. 键盘录入(Scanner用法)
2.1 键盘录入(Scanner)
Java中的Scanner是一个用于接受用户键盘输入数据的具类。调用时需要遵守以下步骤:
- 导包(导入Scanner类)❗️
必须写在类定义的上方
import java.utill.Scanner;//导包
- 创建Scanner对象,并将其与标准输入流
System.in
关联.
Scanner sc = new Scanner(System.in);//sc是需要键盘输入变量名
- 接收键盘数据
- 接收字符串:
1.使用nextLine()
方法可以读取一行内容,包括空格和回车符。
2.使用next()
方法读取一个有效的字符串,直到遇到空格、制表符或换行符为止。- 读取数值:
1.使用nextInt()
方法读取一个整数。
2.使用nextDouble()
方法读取一个浮点数。
3.使用nextByte(),nextFloat(), nextLong(),nextShort()
等方法读取特定类型的数值。如果输入的数值超过了某个方法的范围,将会报错。
int i = sc.nextInt();//定义一个变量来记录从键盘输入的整型数据
2.2 应用
🎈应用:计算从键盘输入的两数之和
import java.util.Scanner;//导包
public class SumOfTwoNumbers {//创建类
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//创建Scanner类
System.out.println("请输入第一个数:");
int num1 = scanner.nextInt();//接收第一个数据
System.out.println("请输入第二个数:");
int num2 = scanner.nextInt();//接收第二个数据
int sum = num1 + num2;
System.out.println("两数之和为: " + sum);
scanner.close();//关闭Scanner类
}
}
下一篇会结合计算机基础的原码、反码、补码介绍位运算符(在许多算法体题中都有体现),内容稍有点复杂,但相信大家都能理解掌握😎。