Java核心_运算符
程序员文章站
2022-05-18 16:42:14
...
0.目标
- 理解运算符的概念和分类
- 能够熟练使用基本的算术、赋值、关系、逻辑运算符
- 能够熟练使用三元运算符
- 运算符:对常量和变量进行运算操作的符号
- 程序对数据进行运算时要用运算符
- 表达式:用运算符把常量和变量连接起来的式子
- 表达式的类型:表达式的类型为表达式运算结果的数据类型。如:整形表达式:1+2 10*20;布尔型表达式:2>1。
1.算术运算符
用来进行算术运算的符号
分类
注意事项:
/:除法运算符,得到两个数据相除的商。
特点:Java中整数除以整数还是整数。如:3 / 2 = 1。
%:取模(取余)运算符,得到两个数据相除的余数。
特点:可以用来判断两个数是否能够整除。
2.字符和字符串参与加法运算
加法运算的特点
- 加号两边是数值型数据时,进行加法运算
- ‘a’、'0’等字符型数据参与运算时,用该字符在计算机中所表示的数值进行运算。
- 加号两边有任意一边是字符串时,进行字符串的拼接
public class OperatorDemo {
public static void main(String[] args) {
//
}
}package org.example.helloworld;
public class OperatorDemo {
public static void main(String[] args) {
// 字符的加法运算
// 定义两个变量,int,char
int a =10;
char ch = 'a';
System.out.println(a + ch);
// 字符串的加法运算
System.out.println("hello" + "world");
System.out.println("hello" + 10);
System.out.println("hello" + 10 + 20);
System.out.println(10 + 20 + "hello");
}
}
结果:
107
helloworld
hello10
hello1020
30hello
3.自增和自减运算符
-
++:自增1
-
–:自减1
-
单独使用:放在变量前和放在变量后结果一样
-
参与运算时:
在变量前,先自增1(自减1),再进行其他运算
在变量后,先以原来的值进行其他运算,再自增1(自减1)
package org.example.helloworld;
/**
* ++:自增1
* --:自减1
*
* 用法:
* - 单独使用:放在变量前和放在变量后结果一样
* - 参与运算时:
* - 在变量前,先自增1(自减1),再进行其他运算
* - 在变量后,先以原来的值进行其他运算,再自增1(自减1)
*/
public class OperetorDemo2 {
public static void main(String[] args) {
// 定义两个int类型变量
int a = 5;
int b = 5;
// 单独使用
// 在变量前
++ a;
// 在变量后
b ++;
// 参与运算
System.out.println("a:" + a);
System.out.println("a:" + (++ a));
System.out.println("b:" + b);
System.out.println("b:" + (b ++));
}
}
结果:
a:6
a:7
b:6
b:6
4.赋值运算符
即用于给变量赋值的运算符
扩展运算符的好处
省略了强制类型转换的操作
用法
int a = 10;
a += 20; // 相当于a = a + 20;
System.out.println(a); // 30
好处:
short s = 1;
// s = s + 1; // 报错
s =+ ; // 相当于s = (short)(s + 1);
System.out.println("s:" + s); // s:2
5.关系运算符
- 定义:关系运算符是用来描述两个变量之间的关系的。
- 关系运算符的运算结果都是布尔(boolean)类型,要么是true,要么是false。
注意:关系运算符==和赋值运算符=的区别
6.逻辑运算符
用于判断“并且”、“或者”、“除非”等逻辑关系。
逻辑运算符两端一般连接值为布尔类型的关系表达式。
常见逻辑运算符:
&&:逻辑与,并且
||:逻辑或,或者
!:逻辑非,表示否定
package org.example.helloworld;
/**
* 常见逻辑运算符:**
* &&:逻辑与,并且,要求所有条件都满足
* ||:逻辑或,或者,要求只要满足一个条件即可
* !:逻辑非,取反,表示否定,以前若为false,现在为true
* 注意:
* 两个逻辑非,结果不变
*/
public class OperatorDemo3 {
public static void main(String[] args) {
// 案例:韦小宝找媳妇儿
// 符号约定:前面的true表示长得好看,false表示长得不好看;后面的true表示身材好,false表示身材不好
// 刚开始眼光较高,要求既要长得好看,还要身材好
System.out.println(true && true);
System.out.println(true && false);
System.out.println(false && true);
System.out.println(false && false);
System.out.println("------------------------------");
// 韦小宝发现媳妇儿不好找,于是降低了要求,只要长得好看,或者身材好就行
System.out.println(true || true);
System.out.println(true || false);
System.out.println(false || true);
System.out.println(false || false);
System.out.println("------------------------------");
// 韦小宝发现媳这样的妇儿不好找,于是降低了要求,只要不是男的就行
// true表示女,false表示男
System.out.println(! true);
System.out.println(! false);
}
}
输出结果:
true
false
false
false
------------------------------
true
true
true
false
------------------------------
false
true
7.三元运算符
三元运算符又叫“三目运算符”,即由三部分组成,格式如下:
(关系表达式)?表达式1: 表达式2;
运算流程:
如果关系表达式结果为true,运算后的结果是表达式1
如果关系表达式结果为false,运算后的结果为表达式2
案例
需求:求两个整数的最大值
思路:
- 定义两个int类型的变量
- 关系表达式中比较两个变量的最大值
- 根据结果返回最大值,并打印
package org.example.helloworld;
/**
* 格式:
* (关系表达式)?表达式1: 表达式2;
*
* 执行流程:
* 先判断关系表达式是否成立
* 成立,则执行表达式1
* 不成立,则执行表达式2
*/
public class OperatorDemo4 {
public static void main(String[] args) {
// 需求:求两个整数的最大值
// 思路:
// 1. 定义两个int类型的变量
int a = 10;
int b = 20;
// 2. 关系表达式中比较两个变量的最大值
int max = (a > b) ? a : b;
// 3. 根据结果返回最大值,并打印
System.out.println(max);
}
输出结果:
20
上一篇: python之运算符
下一篇: 运算符