运算符
简单来说,程序就是让机器实施运算,而程序语言中提供运算功能的就是运算符。在最底层,Java中的数据都是由这些运算符来完成计算的。
赋值运算符
简单的赋值运算符就是等号“=”;把等号右边的值赋予给左边的变量
此时的“=”并不是数学中的等于
一元运算符
一元运算符 | 意义 |
---|---|
+ | 正号 |
- | 负号 |
! | NOT,非 |
~ | 按位取反运算符 |
++ | 变量值自增1 |
- - | 变量值自减1 |
算数运算符
算数运算符 | 意义 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 余数 |
逻辑运算符
运算符 | 含义 | 解释 |
---|---|---|
&& & | 与(AND) | 两者操作皆为真时,运算结果才为真 |
竖杠 两个竖杠 | 或(OR) | 两个操作数只要有一个为真,运算结果即为真 |
! | 非(NOT) | 返回与操作数相反的布尔类型 |
简单的说明一下
逻辑运算符中的 & / | 和 && / || 的区别
& / | 表示的是每个条件都需要判断
&& / || 表示的是只要第一个判断条件不成立,后面的条件就不进行判断
位运算符
位运算符暂时用不到,所以只做简单了解
位运算是指对操作数以二进制为单位进行的运算,其运算结果为整数。
位运算的第一步是把操作数转换为二进制的形式,然后按位进行布尔运算,运算之后的结果也是二进制数。
位运算符 | 含义 |
---|---|
& | 按位与AND |
竖杠 | 按位或OR |
^ | 按位异或 |
~ | 按位取反 |
<< | 左移位 |
>> | 带符号右移位 |
>>> | 无符号右移位 |
三元运算符
三元运算符也被称为三目运算符,他的运算符是“ ?: ”,有三个操作数。
- 操作流程
首先判断条件,如果条件满足,就会赋予变量一个指定的内容(冒号之前的);不满足就会赋予变量另一个内容(冒号之后的)。 - 操作语法
数据类型 变量= 布尔表达式?条件满足设置内容:条件不满足设置内容;
关系运算符和if语句
关系运算符 | 意义 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
- if语句通常用于某个条件进行真(true),假(false)识别
if(判断条件)
语句;
递增递减运算符
运算符 | 意义 |
---|---|
++ | 递增,变量值加1 |
- - | 递减,变量值减1 |
表达式
表达式是由常量,变量或者其他运算操作数与运算符所组成的语句。
个人理解为表达式就是java代码中的语句
算数表达式与关系表达式
算数表达式用于数值计算。是由算数运算符与常量或者变量组合成的,他的结果就是一个数值。
关系表达式常用于判断语句中,由关系运算符组成,其运算结果为逻辑数值型(true&flase)。
逻辑表达式与赋值表达式
由逻辑运算符将关系表达式或逻辑量连接起来有意义的式子称为逻辑表达式。其值也是一个逻辑值(true&false)。
由赋值运算符(=)和操作数组合而成的表达式为赋值表达式,主要作用是给变量赋值。
表达式的类型转换
Java是一种很有弹性的程序设计语言,只要坚持“以不流失数据为前提”的大原则,即可进行不同的类型转换,使不同的数据,表达式都能继续存储。
- 规则
- 占用字节少的数据类型转换成占用字节较多的数据类型
- 字符类型会转换成int类型
- int类型会转换成float类型
- 表达式中某个操作数km的类型为double,则另一个操作数也会转换成double型
- 布尔类型不能转换为其他类型
语句
Java程序语句由表达式组成,每条语句之间以“ ; ”隔开。
语句中的空格
语句中的空格使代码变得易懂。
但是,组合运算符类似“-=,+=”不可以在其中间加空格
空语句
Java中有一种语句什么也不执行,这就是空语句。由一个分号构成。
常用作空循环体,
声明语句与赋值语句
声明语句一般用在创建变量时。
int a;
这就是一个声明语句。
赋值语句用于变量或常量创建后进行赋值。{变量或常量创建后如果没有赋值的话会选择默认值,整型的为0;布尔型的为false;引用数据类型和字符串的为null(空)}
int b;
b = 2;
在这里 b = 2;就是赋值语句
程序的控制逻辑
结构化程序设计是一种经典的编程模式,强调使用模块化,积木式的方法来建立程序。这种方法可以使程序的逻辑结构清晰,层次分明,可读性好,可靠性强;从而提高程序的开发效率,保证程序质量,提高可靠性。
以下三种结构,都只有一个入口和出口;单一的入口和出口使程序变的可控,易懂,好维护。
顺序结构
顺序结构是最简单的结构类型,就是按书写代码的先后执行语句。
选择结构
选择结构也称为分支结构,在程序设计中,根据输入数据和中间结果的不同,选择不同的语句组执行。
循环结构
循环结构的特点,在给定的条件成立时,反复的执行某个程序段。我们称给定条件为循环条件,反复执行的程序段为循环体,循环体中也可以包含循环语句,实现循环的嵌套。
选择结构
Java中的选择结构提供了以下两种类型的分支结构
- 条件分支:根据给定的条件进行判断,决定执行某个分支的程序段
- 开关分支:根据给定的整型表达式的值进行判断,然后决定执行多路分支中的一路
条件分支主要用于两个分支的选择;开关分支用于多个分支的选择
if语句
if语句用于实现条件分支结构,他在可选动作中作出选择,执行分支的某个程序段。
if (判断条件){
执行语句;
}
if…else语句
if…else语句是根据判断条件是否成立来执行的。条件成立,执行if之后的语句1;条件不成立,执行else后的语句2。
if(判断条件){
语句1;
} else {
语句2;
}
if…else if…else语句
由于if语句体或else语句体可以是多条语句,所以需要在if…else里判断多个条件。
if (判断条件1){
语句体1;
} else if (判断条件2){
语句体2;
}
...
else {
语句体n;
}
多重选择–switch语句
虽然if…else if…else语句可以实现循环嵌套,但是由于语句太过复杂容易导致逻辑混乱引发错误,所以switch就是对其进行的优化选择语句。
switch(表达式){
case1:
语句体1;
break;
case2:
语句体2;
break;
......
case n:
语句体n;
break;
default:
break;
}
- switch语句的执行流程
- switch 语句先计算括号内的表达式的结果
- 根据表达式的值检测是否符合case后面的选择值,如果都不符合,则执行default后的语句,离开switch循环
- 如果某个case符合表达式的结果,就会执行该case值后的语句体,直到break后离开switch语句。
- 如果case语句结尾处没有break,则会执行到switch语句结束后离开switch
- 如果没有定义default该执行的语句,就会直接跳出switch语句
循环结构
循环结构是程序中的另一种重要结构。他和顺序结构,选择结构共同作为各种复杂程序的基本部件。
while循环
while循环是先计算表达式的值,若表达式为真,则执行循环体中的语句,继续循环,否则就退出循环
while (判断条件){
语句体;
}
do…while循环
前面的while循环被称为“当型循环”,现在要说的do…while循环被称为“直到型循环”(先执行循环体,再判断条件)。
do {
循环语句;
} while (判断条件);
- 在进入循环前,先对循环控制变量进行赋值
- 直接执行循环主体,循环主体执行完毕,才根据条件的内容判断是否继续执行循环;条件为真时,继续执行循环;条件为假时,跳出循环,执行其他语句。
for循环
在for循环中,赋初始值语句,判断条件语句,增减量语句都可有可无。他可以是一条语句或空语句,也可以是复合语句
for (赋初始值 ;判断条件 ; 增减标志量){
语句体;
}
- 第一次进入循环时,会对循环控制变量赋初始值
- 根据判断的内容检查是否要继续执行循环,当判断条件为真时,继续执行循环;循环条件为假时,跳出循环,执行其他语句
- 执行完循环主体内的语句后,循环控制变量会根据增减量的需求改变值,再回到上一步判断是否继续执行循环
循环的跳转
break语句
break的作用是使程序立即退出该结构,转而执行该结构下的第一条语句。因此也被称为中断语句,用来在适当的时候退出循环
continue语句
continue表示结束本次循环,立即开始测试循环条件,决定是否进行下次循环。
return语句
可以使程序的流程离开return语句所在的方法体,简单认为就是结束程序。