##################################################
目录
##################################################
Java 赋值运算符
——————————
赋值运算符/等于号/=
一个异常重要的运算符 那就是 赋值运算符 一个等于号
=
这个是使用最多的运算符
等号左边是地址 右边是一个值
我们已经知道
等于号可以将某个数值赋给变量
或是将某个表达式的值赋给变量
一句话 赋值运算符的功能就是:
将等号右边表达式的结果赋值给等号左边的变量
——————————
什么是表达式
表达式就是
符号 如加号减号
与
操作数 如变量 a 数字 3 等
的组合式
示例:
int a;
int b = (b + 10) * (b - 2);
##################################################
Java 算术运算符
——————————
什么是算术运算符
算术运算符用在数学表达式中
她们的作用和在数学中的作用一样
Java 中 提供运算功能的就是算数运算符
使用数值操作数进行数学计算
顾名思义 算数运算符 就是算数的!
——————————
Java 所有的算术运算符
下面列出了所有的算术运算符:
假设整数
变量 A 的值为 10
变量 B 的值为 20
则如下:
操作符 描述 例子
+ 加法 相加运算符两侧的值 A + B 等于 30
- 减法 左操作数减去右操作数 A – B 等于 -10
* 乘法 相乘操作符两侧的值 A * B 等于200
/ 除法 左操作数除以右操作数 B / A 等于2
% 取余 左操作数除以右操作数的余数 B % A 等于0
++ 自增 操作数的值增加 1 B++ 或 ++B 等于 21
-- 自减 操作数的值减少 1 B-- 或 --B 等于 19
——————————
全部算术运算符程序演示
下面的简单示例程序演示了算术运算符
test.java code:
public class test { /* 声明 test 类 即此程序的框架 */
public static void main(String[] args) { /* main 方法 */
/* 声明变量 在程序的头部集合声明变量的做法几乎是公认的 */
int a = 11;
int b = 22;
int c = 33;
int d = 44;
/* 使用 + 运算符 拼接输出打印结果 */
System.out.println ( "a + b = " + (a + b) );
System.out.println ( "a - b = " + (a - b) );
System.out.println ( "a * b = " + (a * b) );
System.out.println ( "b / a = " + (b / a) );
System.out.println ( "b % a = " + (b % a) );
System.out.println ( "c % a = " + (c % a) );
/* 查看 d++ 与 ++d 的不同 */
System.out.println();
System.out.println ( "a++ = " + (a ++) );
System.out.println ( "a-- = " + (a --) );
System.out.println ( "d++ = " + (d ++) );
System.out.println ( "++d = " + (++ d) );
}
}
cmd demo:
C:\Users\byme\javaTest>javac test.java
C:\Users\byme\javaTest>java test
a + b = 33
a - b = -11
a * b = 242
b / a = 2
b % a = 0
c % a = 0
a++ = 11
a-- = 12
d++ = 44
++d = 46
C:\Users\byme\javaTest>
——————————
自增自减运算符说明以及程序示例
自增运算符 ++
自减运算符 --
这两个在 Java 是一种特殊的算术运算符
在算术运算符中需要两个操作数来进行运算
而自增自减运算符是一个操作数
这么说应该很明白吧。。
code:
public class test{
public static void main(String[] args){
int a = 3; /* 定义一个变量 */
int b = ++a; /* 自增运算 */
int c = 3;
int d = --c; /* 自减运算 */
System.out.println ( "进行自增运算后的值等于 >>> " + b );
System.out.println ( "进行自减运算后的值等于 >>> " + d );
}
}
cmd demo:
C:\Users\byme\javaTest>javac test.java
C:\Users\byme\javaTest>java test
进行自增运算后的值等于 >>> 4
进行自减运算后的值等于 >>> 2
C:\Users\byme\javaTest>
解析上面的 code :
code:
int b = ++a;
拆分运算过程为:
a = a + 1 = 4
b = a = 4
最后结果为
b = 4
a = 4
code:
int d = --c;
拆分运算过程为:
c = c - 1 = 2
d = c = 2
最后结果为
d = 2
c = 2
——————————
前/后 自增自减解释及演示
那么 自增自减运算符 写在前面和后面 都有什么作用呢?
前缀自增自减法 例如
++ a
-- a
先进行自增或者自减运算
再进行表达式运算
后缀自增自减法 例如
a ++
a --
先进行表达式运算
再进行自增或者自减运算
code:
public class test {
public static void main(String[] args) {
int a = 5;
int b = 5;
int x = 2 * ++a; /* 将等号右边表达式的结果赋值给等号左边的变量 */
int y = 2 * b++;
System.out.println ( "自增运算符前缀运算后 a = " + a + ", x = " + x );
System.out.println ( "自增运算符后缀运算后 b = " + b + ", y = " + y );
}
}
cmd:
C:\Users\byme\javaTest>javac test.java
C:\Users\byme\javaTest>java test
自增运算符前缀运算后 a = 6, x = 12
自增运算符后缀运算后 b = 6, y = 10
C:\Users\byme\javaTest>
##################################################
Java 关系运算符
——————————
什么是关系运算符
关系运算符 就是用来做比较运算的
就是用来做比较的 想必也发现了 比较的结果 是一个 boolean 类型的值
非 true 即 false
——————————
布尔变量的概念
我们这也算是接触到了布尔变量的概念了
那什么是布尔值?
现在我们只需要记住 布尔只有两个值 真和假
在计算机内部 是这样表示的:
0 = 假
1 = 真
还是 0 和 1
不过我们以 true 和 false 表示真假
着实有些麻烦。。而在 C 语言这个值中直接用 0 和 1 表示
——————————
Java 所有的关系运算符
如下:
假如
int A = 10;
int B = 20;
运算符 描述 例子
== 检查如果两个操作数的值是否相等,如果相等则条件为真 (A == B) 为假 即非真
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真 (A != B) 为真
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真 (A > B) 非真
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真 (A < B) 为真
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真 (A >= B) 为假
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真 (A <= B) 为真
——————————
下面的程序演示了关系运算符
test.java code:
public class test {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println ( "a == b = " + (a == b) );
System.out.println ( "a != b = " + (a != b) );
System.out.println ( "a > b = " + (a > b) );
System.out.println ( "a < b = " + (a < b) );
System.out.println ( "b >= a = " + (b >= a) );
System.out.println ( "b <= a = " + (b <= a) );
}
}
cmd demo:
C:\Users\byme\javaTest>javac test.java
C:\Users\byme\javaTest>java test
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false
C:\Users\byme\javaTest>
现在明白了吧 没错 返回的的确是布尔值 非真即假
我们可以利用这个做出判断
##################################################
Java 逻辑运算符
——————————
什么是逻辑运算符
没有意义的解释:
就是逻辑判断!
——————————
介绍布尔变量 boolean
没错 新知识点 这里就是声明布尔变量
我们已经学习了一些数据类型 有表示数字的 有表示字符的
但是这个世界上其实还有真假之分 我们也可以依据这个做一些判断
这个时候 就需要有一种数据类型 表示真假
这就是布尔类型:
boolean
bloolean 是 Java 的一个关键字
所有字母均小写
boolean 有且仅有两个值:
true 真
false 假
——————————
布尔变量程序示例
test.java code:
import java.util.Scanner;
public class test {
public static void main(String[] Args) {
Scanner input = new Scanner(System.in); /* Java 的一种输入方法 */
boolean list;
int one;
int two;
System.out.print ( "输入第 1 个数字 <<< " );
one = input.nextInt();
System.out.print("输入第 2 个数字 <<< ");
two = input.nextInt();
list = one > two;
System.out.println("第 1 个数字大于第 2 个数字吗 >>> [ " + list + " ]" );
}
}
cmd demo:
C:\Users\byme\javaTest>javac test.java
C:\Users\byme\javaTest>java test
输入第 1 个数字 <<< 521
输入第 2 个数字 <<< 520
第 1 个数字大于第 2 个数字吗 >>> [ true ]
C:\Users\byme\javaTest>java test
输入第 1 个数字 <<< 522
输入第 2 个数字 <<< 522
第 1 个数字大于第 2 个数字吗 >>> [ false ]
C:\Users\byme\javaTest>java test
输入第 1 个数字 <<< 1314
输入第 2 个数字 <<< 5211314
第 1 个数字大于第 2 个数字吗 >>> [ false ]
C:\Users\byme\javaTest>
——————————
Java 所有的逻辑运算符
逻辑运算符:
假设布尔
变量 A 为真
变量 B 为假
操作符 描述 例子
&& 称为逻辑 与 运算符 当且仅当两个操作数都为真 条件才为真 (A && B) 为假
|| 称为逻辑 或 操作符 如果任何两个操作数任何一个为真 条件为真 (A | | B) 为真
! 称为逻辑 非 运算符 用来反转操作数的逻辑状态 如果条件为 true 则逻辑非运算符将得到 false 值 !(A && B) 为真
——————————
下面的简单示例程序演示了逻辑运算符
test.java code:
public class test {
public static void main(String[] args) {
/* 声明布尔变量 */
boolean a = true;
boolean b = false;
System.out.println ( "a && b = " + (a && b) );
System.out.println ( "a || b = " + (a || b) );
System.out.println ( "!(a && b) = " + !(a && b));
}
}
cmd demo:
C:\Users\byme\javaTest>javac test.java
C:\Users\byme\javaTest>java test
a && b = false
a || b = true
!(a && b) = true
C:\Users\byme\javaTest>
##################################################
Java 三大运算符优先顺序
——————————
什么叫优先级
什么叫优先级?
即 在一个表达式中 如果同时有多个运算符 咋办?
那到底该先执行哪个?
这个时候 就有先后顺序了
在一个表达式中 算术运算符 的优先级最高
关系运算符 次之
逻辑运算符 最低
当运算符比较多时
还可以使用小括号和大括号改变某个运算符的执行顺序
——————————
运算符优先级
算术运算符 > 关系运算符 > 逻辑运算符
——————————
简单示例运算符优先级
算术运算符的使用基本上和平时进行的加减乘除运算一样
也遵循先乘除后加减 必要时加上括号表示运算的先后顺序
在使用 取余运算符
/
进行运算时
一定要分清哪一部分是 被除数 !!
必要的时候加上括号
code:
System.out.println ( 2 + 4 + 6 / 2 );
则
2 + 4 + (6 / 2)
而不是
(2 + 4 + 6) / 2
code:
public class test {
public static void main(String[] args) {
System.out.println ( 2 + 4 + 6 / 2 );
System.out.println ( 2 + 4 + (6 / 2) );
System.out.println ( (2 + 4 + 6) / 2 );
}
}
demo:
C:\Users\byme\javaTest>javac test.java
C:\Users\byme\javaTest>java test
9
9
6
C:\Users\byme\javaTest>
——————————
演示复杂运算符优先级
code:
public class test {
public static void main(String[] args) {
boolean a = true;
int b = 4;
int c = 5;
int d = 3;
int e = b + c * d; /* e = 19 */
int f = (b + c * d); /* f = 19 */
if ( e == f ) {
/* 如果最后 (b + c * d) 这个表达式计算的结果为 19 导致 19 == 19 这个表达式成立 则执行代码体 */
a = true;
}
if ( a ) {
/* 如果 a 为 真 则执行代码体 */
System.out.println ( "a = " + a + "\n" + "e = " + e + "\nf = " + f + "\n程序继续!" );
} else {
System.out.println ( "a = " + a + "\n" + "e = " + e + "\nf = " + f + "\n程序结束!" );
}
System.out.println();
f = ( (b + c) * d ); /* f = 27 */
if ( e != f ) {
/* 如果最后 ( (b + c) * d ) 这个表达式计算的结果为 27 导致 19 != 27 这个表达式成立 则执行代码体 */
a = false;
}
if ( a ) {
System.out.println ( "a = " + a + "\n" + "e = " + e + "\nf = " + f + "\n程序继续!" );
} else {
/* 如果 a 为 假 则执行代码体 */
System.out.println ( "a = " + a + "\n" + "e = " + e + "\nf = " + f + "\n程序结束!" );
}
}
}
demo:
C:\Users\byme\javaTest>javac test.java
C:\Users\byme\javaTest>java test
a = true
e = 19
f = 19
程序继续!
a = false
e = 19
f = 27
程序结束!
C:\Users\byme\javaTest>