上篇回顾
上篇的内容不知道小伙伴们学习的怎样,我这里出几个问题帮助下大家巩固一下,大家看看能不能直接回答出来。
- java中的注释分几种,使用什么符号表示?
- java中的基本数据类型包括几种?
- 变量的定义格式是什么?
- 标识符的组成规则是什么?
- 类型转换分为哪些?
学习目标
- 运算符
1.1. 算术运算符
1.2. 赋值运算符
1.3. 自增自减运算符
1.4. 关系运算符
1.5. 逻辑运算符
1.6. 三元运算符 - 键盘录入
内容
一. 运算符
1.1. 算术运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 对数字进行加法运算,对字符串进行拼接。 |
- | 减 | 对数字进行减法运算。 |
* | 乘 | 对数字进行乘法运算。 |
/ | 除 | 对数字进行除法运算。整数相除结果为整数,只有浮点类型参数参与运算结果才能得到小数部分。 |
% | 取余 | 获取两数相除的余数。 |
1.1.1. 算术运算符基本使用
public class OperatorDemo {
public static void main(String[] args) {
int a = 5;
int b = 2;
//进行算术运算
System.out.println(a + b); // 7
System.out.println(a - b); // 3
System.out.println(a * b); // 10
//除法得到的是商,取余得到是余数
System.out.println(a / b); // 2
System.out.println(a % b); // 1
//整数相除只能得到整数,要想得到小数,必须有浮点数(float 类型和 double 类型)的参与
System.out.println(5 / 2); // 2
System.out.println(5.0 / 2); // 2.5
}
}
1.1.2. 算法运算符类型提升
public class OperatorDemo {
public static void main(String[] args) {
// 1、byte、short、char变量之间进行运算时,类型自动提升为int。
byte b = 10;
// b + 5自动提升为int类型
// byte b2 = b + 5; // 编译报错
int b2 = b+5;
System.out.println(b2);
// 2. 变量参与运算时,最终结果以最高类型为准。
int num1 = 10;
long num2 = 20L;
long num3 = num1 + num2;
System.out.println(num3);
}
}
1.1.3. 字符、字符串拼接
字符字符类型(char)参与运算会自动转换成ASCII编码表中对应的数值进行运算。常见字符对应:
'a'~'z':97~122
'A'~'Z':65~90
'0'~'9':48~57
基本汉字:19968~40869
public class CharDemo{
public static void main(String[] args){
char c = 'a';
int num = c + 10; //使用编码表中'a'对应的十进制数97进行运算
System.out.println(num); //107
}
}
字符串
与字符串进行 “+” 运算,是进行字符串的拼接操作,不会做加法运算。
public class StringAddDemo{
public static void main(String[] args){
int age = 20;
System.out.println("我的年龄是:" + age + "岁"); // 输出结果:我的年龄是:20岁
int num = 10;
System.out.println("我的年龄是:" + age + num + "岁"); // 输出结果:我的年龄是:2010岁
// 想要进行数值的运算,需要让数值在与字符串拼接之前先进行运算,然后再拼接
System.out.println("我的年龄是:" + (age + num) + "岁"); // 输出结果:我的年龄是:30岁
}
}
1.2. 赋值运算符
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | a=10,将10赋值给变量a |
+= | 先加后赋值 | a+=b,将a+b的值赋值给a |
-= | 先减后赋值 | a-=b,将a-b的值赋值给a |
*= | 先乘后赋值 | a*=b,将a×b的值赋值给a |
/= | 先除后赋值 | a/=b,将a÷b的值赋值给a |
%= | 取余后赋值 | a%=b,将a÷b的余数赋值给a |
1.2.1 赋值运算符基本使用
public class AssignmentDemo {
public static void main(String[] args) {
//1. 基本赋值运算符 =
int a = 10;
System.out.println(a);
//2. 扩展赋值运算符
int b = 20;
b += 5;
System.out.println(b);
// b -= 5;
// System.out.println(b);
// b *= 5;
// System.out.println(b);
// b /= 5;
// System.out.println(b);
// b %= 5;
// System.out.println(b);
// 3. 扩展赋值运算符隐含了强制类型转换
byte num = 10;
num += 5;
System.out.println(num);
// num = num + 5; //报错
// num += 5 相当于以下代码:
num = (byte)(num + 5);
System.out.println(num);
}
}
1.3. 自增自减运算符
符号 | 作用 | 说明 |
---|---|---|
++ | 自增 | 变量的值加1 |
-- | 自减 | 变量的值减1 |
1.3.1. 自增自减运算符基本使用
public class SelfIncreasingOrDecreasingDemo{
public static void main(String[] args){
// 1、单独运算时,运算符放在前面或者后面效果一样。
// int a = 10;
// a++;
// int b = 10;
// ++b;
// System.out.println(a); //11
// System.out.println(b); //11
// System.out.println(10++) 引发编译错误,自增自减不能对常量进行操作
// 2、参与其他运算时
// a++:先将a的值参与其他运算,运算结束后再自增1。
// ++a:先将a自增1,再参与其他运算。
// int a = 10;
// int b = a++;
// System.out.println(a); //11
// System.out.println(b); //10
int a = 10;
int b = ++a;
System.out.println(a); //11
System.out.println(b); //11
}
}
1.4. 关系运算符
符号 | 作用 | 说明 |
---|---|---|
== | 等于 | 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 |
1.4.1. 关系运算符基本使用
public class RelationshipDemo {
public static void main(String[] args) {
// 定义变量
int i = 10;
int j = 20;
int k = 10;
// 相等 ==
System.out.println(i == j);
System.out.println(i == k);
System.out.println("--------");
// 不等 !=
System.out.println(i != j);
System.out.println(i != k);
System.out.println("--------");
// 大于 >
System.out.println(i > j);
System.out.println(i > k);
System.out.println("--------");
// 大于等于 >=
System.out.println(i >= j);
System.out.println(i >= k);
System.out.println("--------");
// 关系运算法的运算结果都是布尔类型(boolean), 要么是 true, 要么是 false
// 如果把 == 写成了 =,会变成把 j 的值赋值给了 i,然后输出 i 的值
System.out.println(i = j);
}
}
1.5. 逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | 表达式1 & 表达式2 (所有表达式均为true,结果才为true,会执行全部表达式) |
| | 逻辑或 | 表达式1 | 表达式2 (任意表达式为true,结果就为true,会执行全部表达式) |
! | 逻辑非 | ! 表达式 (对表达式结果取反) |
^ | 逻辑异或 | 表达式1 ^ 表达式2 (左右两边结果不同为true,相同为false) |
&& | 短路与 | 作用和 & 相同,但是有短路效果,即前面条件满足则不执行后面表达式 |
|| | 短路或 | 作用和 | 相同,但是有短路效果,即前面条件满足则不执行后面表达式 |
1.5.1. 逻辑运算符基本使用
public class LogicDemo {
public static void main(String[] args) {
//定义变量
int i = 10;
int j = 20;
int k = 30;
// && 有false则false
System.out.println((i > j) && (i > k)); // false && false
System.out.println((i k)); // true && false
System.out.println((i > j) && (i false && true
System.out.println((i true && true
System.out.println("--------");
// || 有true则true
System.out.println((i > j) || (i > k)); // false || false
System.out.println((i k)); // true || false
System.out.println((i > j) || (i false || true
System.out.println((i true || true
System.out.println("--------");
int a = 10;
int b = 10;
// 逻辑与 & : 所有表达式都会执行
boolean flag = a > b & a == b++; // false & true
System.out.println(flag); // false
System.out.println(b); // 11
// 短路与 && : 具有短路效应
boolean flag = a > b && a == b++;
System.out.println(flag); // false
System.out.println(b); // 10
// 逻辑或 | :所有表达式都会执行
boolean flag = a == b | a == ++b; // true | false
System.out.println(flag); // true
System.out.println(b); // 11
// 短路或 || :有true则true,但是具有短路效应。
boolean flag = (a == b) || (a == ++b); // true
System.out.println(flag); // true
System.out.println(b); // 10
}
}
1.6. 三元表达式
/**
* 语法格式:判断表达式 ? 表达式1 : 表达式2;
* 执行判断表达式,判断结果是boolean类型,为 true 时执行表达式1并返回结果,false 时执行表达式2并返回结果
*/
// 1:使用三元运算符判断两个整数是否相等
int a = 10;
int b = 20;
boolean bb = a == b ? true:false;
System.out.println(bb); // false
// 2:使用三元运算符求两个整数的较大值
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max); // 20
二. 键盘录入
/**
* Scanner是JDK提供的用于【获取键盘输入的数据】的工具类。该类位于【java.util】包下。
*
* 使用步骤如下:
*/
// 1. 导包
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
// 2. 创建Scanner的对象
Scanner sc = new Scanner(System.in);
//提示用户输入
System.out.println("请输入第一个数字:");
// 3. 调用方法接收数据(这里的nextInt()方法是只接受一个int类型参数,该对象还有其它方法,具体详情请参考API文档)
int a = sc.nextInt();
System.out.println("请输入第二个数字:");
int b = sc.nextInt();
// 求和
int sum = a + b;
// 打印求和结果
System.out.println("和为:" + sum);
}
}
总结
这一篇我们主要学习了运算符,这一块是基础中较为重要的一部分,小伙伴们一定要学好呦,不然后面的流程控制部分就有点难懂了~
今天的文章到这里就结束了,小伙伴们有什么建议或者意见请联系我改进哦,你们的支持是我最大的动力!!!