变量的分类
-
1.1按数据类型分类
- a.整形
- 1.整形:byte(1字节=8bit),short(2字节)\long(8字节)
- 2.byte范围:-128~127
- 3.声明long型变量,必须以"l"或"L"为结尾
- 4.通常,定义整形变量时,使用int型
- b.浮点型 float(4字节)\double(8字节)
- 1.浮点型,表示带小数点的数值
- 2.float表示数值的范围比long还大
- 3.定义float类型变量时,变量要以"f"或"F"结尾
- 4.通常,定义浮点型变量时,使用double型。
- c.字符型:char(1字符=2字节)
- 1.定义char型变量,通常使用1对’’,内部只能写一个字符
- 2.表示方式:1.声明一个字符 2.转义字符 3.直接使用unicode值来表示字符型常量
- d.布尔型:boolean
- 1.只能取两个值之一:true、false
- 2.常常在条件判断、循环结构中使用
- a.整形
-
1.2 按声明的位置分类(了解)
- 成员变量
- 实例变量(不以static修饰)
- 类变量(以static修饰)
- 局部变量
- 形参(方法、构造器中定义的变量)
- 方法局部变量(在方法内定义)
- 代码块局部变量(在代码块内定义)
-
2.定义变量的格式
- 数据类型 变量名 = 变量值
- 或数据类型 变量名
- 变量名 = 变量值
-
3.变量使用的注意点
- 1.变量必须先使用,后声明
- 2.变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
- 3.同一个作用域内,不可以声明两个同名的变量
-
4.基本数据类型变量间运算规则
- 4.1 设计的基础数据类型
- 4.2 自动类型转换(只涉及7种基本数据类型)
- 4.3 强制类型转换(只涉及7种基本数据类型)
- 4.4String与8种基本数据类型的运算
-
运算符
- 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 位运算符
- 三元运算符
-
赋值运算符:
- 符号=
- 当"="两侧数据类型不一致时,可以使用自动类型转换为使用枪支类型转换原则进行处理
- 支持连续赋值
-
扩展赋值运算符: += ,-=, /= %=
-
比较运算符:
- == 相等
- != 不等于
- < 小于
-
大于
- <= 小于等于
-
= 大于等于
- instance of 检查是否是类的对象
-
比较运算符的结果都是boolean型的,也就是,要么是true,要么是flase。
-
比较运算符"==“不能误写成”="
-
逻辑运算符
- & - 逻辑与
- | - 逻辑或
- ! - 逻辑非
- && - 短路与
- || - 短路或
- ^ - 逻辑异或
-
位运算符
- 运算符
- << 左移 空位补0,被移除的高位丢弃,空缺位补0
-
右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1.
-
无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补
- & 与符号 二进制位进行&运算,只有1&1结果是0,否则是0
- | 或符号 二进制位进行|运算,只有0|0时结果是0,否则是1;
- ^ 异或符号 相同二进制位进行运算时,结果是0,不同二进制位运算结果是1
- ~ 取反运算 整数取反为负数
-
三元运算符
-
格式
(条件表达式) ? 表达式1: 表达式2; -
表达式1和表达式2为同种类型
-
三元运算符与if-else的联系与区别
1)三元运算符可简化if-else语句
2)三元运算符必须要求返回一个结果
3)if后的代码块可有多个语句
4)三目运算符可以嵌套使用
-
-
运算符的优先级
- 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。
- 只有单目运算符、三元运算符、赋值运算符是从右向左运算的。
-
程序流程控制
- 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定小功能的小逻辑模块
- 其他流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:
- 顺序结构
程序从上到下逐行地执行,中间没有任何判断和跳转 - 分支结构
根据条件,选择性地执行某段代码
有if-else 和switch-case两种分支语句 - 循环结构
根据循环条件,重复性的执行某段代码
有while、do…while、for三种循环语句
注:JDK1.5提供了foreach循环,方便遍历集合、数组元素。
- 顺序结构
-
如何从键盘获取不同类型的变量:需要使用Scanner类
-
具体实现步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化
3.调用Scanner类的相关方法,来获取指定类型的变量 -
switch-case语句
- 结构
- switch(表达式){
- case 常量1:
语句1;
//break - case 常量2:
语句2:
//break - default:
语句3;
//breal
}
- 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入响应case结构中,调用其执行语句。
- 当调用完执行语句之后,则仍然继续向下执行其他case结构中的执行语句,知道遇到break关键字或此switch-case结构末尾结束为止。
- break,可以使用switch-case结构中,表示一旦执行到此关键字,就结束switch-case结构
- switch结构中的表达式,只能是如下的6种数据类型之一:byte、short、char、int、枚举、String类型
- 结构
-
循环结构:
在某些条件满足的情况下,反复执行特定代码的功能。
循环语句分类
for 循环
while 循环
do-while循环 -
循环语句的四个组成部分
初始化部分
循环条件部分
循环体部分
迭代部分 -
for 循环结构
for(1;2;4){
3;
}
执行过程:1-2-3-4-2-3-4-2-3-4-…-2 -
说明:
1.写while循环千万不要丢了迭代条件。一旦丢了,就可能导致死循环
2.我们写程序,要避免出现死循环
3.for循环和while循环是可以相互转换的!
区别:for循环和while循环的初始化条件的作用范围不同。
do while循环结构
1
do{
3
}while(2)
执行顺序1-3-2-3-2-3-2
-
最简单"无限"循环格式:while(true),for(;?,无限循环存在的原因是并不知道循环多少次,需要根据循环体内部某些条件,来控制循环的结束。
嵌套循环(多重循环)- 讲一个循环放在另一个循环体内,就形成了嵌套循环,其中for,while,do…while均可以作为外层和内层循环。
-
break和continue关键字的使用
break switch-case和循环结构中,结束当前循环
continue 循环结构中 结束党次循环
break;//默认跳出包裹此关键字最近的一层循环
continue; //
break label; //结束指定标示的一层循环结构
continue label; //结束指定标识的一层循环结构当次循环