Java学习
Java基础(3)—-基本语法二
目录
正文
运算符
算术运算符
知识点总结:
- 算术运算符:
运算符 | 运算 |
---|---|
+ | 正号 |
- | 负号 |
+ | 加号 |
- | 减号 |
* | 乘号 |
/ | 除号 |
% | 取模 |
++ | 自增:(前)先运算后取值(后)先取值后运算 |
– | 自碱 |
+ | 连接符(字符串) |
1.取模 %:
(1)如果对负数取模,可以把模数负号忽略不记。 但被模数是负数则不可忽略。
(2)取模运算的结果不一定总是整数。
2.除号“/”:它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
3.连接符:
(1)“+”除字符串相加功能外,还能把非字符串转换成字符串.
(2)当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。
(3)以下二者的区别:
System.out.println(‘a’ + ‘\t’ +’a’); \203
System.out.println(“a” + ‘\t’ +”a”);\a a
4.自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8– 等写法都是错误滴!
赋值运算符
知识点总结:
- 符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。 - 支持连续赋值。
- 扩展赋值运算符: +=, -=, *=, /=, %=
- 思考1: short s = 3;
s=s+2; ①//编译的时候会报错,因为s+2的时候会提升为int类型,然后再赋给short类型的s时会报错:损失精度。
s+=2; ②//则可以通过编译,因为它内部会有一个自动转换过程。
①和②有什么区别?
关系运算符
知识点总结:
1.关系运算符:
运算符 | 运算 |
---|---|
== | 相等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
= | 大于等于 |
instanceof | 检查是否是类的对象 |
2.比较运算符的结果都是boolean型,也就是要么是true,要么是false。
3.比较运算符“==”不能误写成“=” 。
逻辑运算符
知识点总结:
1.逻辑运算符:
运算符 | 运算 |
---|---|
& | 逻辑与 |
逻辑或 | |
! | 逻辑非 |
&& | 短路与 |
^ | 逻辑异或 |
2.&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或
3.逻辑运算符用于连接布尔型表达式,在Java中不可以写成1
位运算符
知识点总结:
1.位运算符:
运算符 | 运算 |
---|---|
左移 | |
右移 | |
无符号右移 | |
& | 与运算 |
或运算 | |
^ | 异或运算 |
~ | 反码 |
2.位运算是直接对二进制进行运算
三元运算符
知识点总结:
1.格式:
(条件表达式)? 表达式1:表达式2;
条件表达式为true,运算后的结果是表达式1; 为false,运算后的结果是表达式2;
2.表达式1和表达式2为同种类型
3.三元运算符与if-else的联系与区别:
1)三元运算符可简化if-else语句
2)三元运算符要求必须返回一个结果。
3)if后的代码块可有多个语句
流程控制
顺序结构
知识点总结:
1.程序从上到下逐行地执行,中间没有任何判断和跳转。
分支结构
知识点总结:
1.根据条件,选择性地执行某段代码。
2.有if…else和switch两种分支语句。
3.f语句三种格式:
1) if(true){
执行代码块;
}
2) if(条件表达式){
执行代码块;
}
else{
执行代码块;
}
3)3. if(条件表达式){
执行代码块;
}
else if (条件表达式){
执行代码块;
}
……
else{
执行代码块;
}
4.switch语句有关规则:
(1)switch(表达式)中表达式的返回值必须是下述几种类型之一:byte,short,char,int,枚举,String;
(2)case子句中的值必须是常量,且所有case子句中的值应是不同的;
(3)default子句是可任选的,当没有匹配的case时,执行default
(4)break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾;
5.if和switch语句很像,具体什么场景下,应用哪个语句呢?
(1)如果判断的具体数值不多,而且符合byte、 short 、int、 char这四种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
(2)其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
循环结构
知识点总结:
1.根据循环条件,重复性的执行某段代码。
2.有while、do…while、for三种循环语句。
3.DK1.5提供了foreach循环,方便的遍历集合、数组元素。
4.循环语句功能:在某些条件满足的情况下,反复执行特定代码的功能
5.循环语句的四个组成部分
(1)初始化部分(init_statement)
(2)循环条件部分(test_exp)
(3)循环体部分(body_statement)
(4)迭代部分(alter_statement)
6.循环语句分类
(1)for 循环
语法格式
for (初始化表达式; 布尔表达式;值测试表达式; 更改表达式){
语句或语句块 ;
}
(2)while 循环
1》语法格式
[初始化语句]
while( 布尔值测试表达式){
语句或语句块;
[更改语句;]
}
2》最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,需要根据某些条件,来控制循环。
(3)do/while 循环
7嵌套循环:
(1)将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环和内层循环。
(2)实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
(3)设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n=mn次。
8.break 语句:
(1)break语句用于终止某个语句块的执行
{ ……
break;
……
}
(2)break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块 ;
(3)break只能用于switch语句和循环语句中。
9.continue 语句:
(1)continue语句用于跳过某个循环语句块的一次执行
(2)continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 ;
(3)continue 只能用于循环语句中。
10.return语句:
并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
11.与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内;
12.break 和 continue 区别:
(1)continue是终止本次循环,break是终止本层循环。
(2)break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句。
13标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
每天积累一点点,每天进步一点点!