一:引用类型的使用
1.引用数据类型的使用格式
与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。
导包:
使用import导包(找到要使用的类型)
定义变量,并创建对象赋值:
数据类型 变量名 = new 数据类型();
调用方法,每种引用数据类型都有其功能,我们可以调用该类型实例的功能:
变量名.方法名();
2.键盘录入:Scanner类
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,终于不需要我们帮用户指定购物数量了,用户可以自己从键盘录入想买的数量了。
Scanner使用步骤:
导包:import java.util.Scanner;
创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
nextInt():接收一个整数
next():接收一个字符串
如:
int i = sc.nextInt(); 用来接收控制台录入的数字
String s = sc.next(); 用来接收控制台录入的字符串
3. 随机数:Random类
生成随机数需要使用到引用类型随机数Random类。
Random使用方式:
导包:所属包java.util. Random
创建实例格式:Random random = new Random ();
调用方法:
nextInt(int maxValue) 产生[0,maxValue)范围的随机数
nextDouble() 产生[0,1)范围的随机数
如:
Random random = new Random ();
int myNumber = random.nextInt(100);//结果为0-99的一个数
double myNumber2 = random.nextDouble();//结果为0-1之间的一个小数
二:if语句
在现实业务中,许多场景需要我们做出条件判断,而每一种条件对应一则业务逻辑。比如,如果考试超过60分,不需要补考,低于60分需要补考。再比如如果是管理员,则可以删除论坛帖子,而普通游客却不可以等等。
对应这样需要选择的业务场景,我们可以使用if选择结构。
1.if语句格式
1.1单条件判断(格式1)
满足if条件即执行,不满足不执行。如年龄大于18岁可以注册婚恋网站
if语句的具体语法格式如下:
if (条件语句){
代码块
}
1.2 互斥条件判断(格式2)
满足条件执行if语句体,不满足执行else语句体。如60分以上及格,60分以下不及格,需要重考
if…else语句具体语法格式如下:
if (判断条件){
执行语句1
……
}else{
执行语句2
……
}
1.3 多条件判断(格式3)
在多个条件中选择满足条件的if语句体执行。例如,对一个学生的考试成绩进行等级的划分,如果分数大于等于80分,小于等于100分等级为优;如果分数大于等于70分,小于80分级为良;如果分数大于等于60分,小于70分等级为及格;60以下为不及格。
if…else if…else语句具体语法格式如下:
if (判断条件1) {
执行语句1
} else if (判断条件2) {
执行语句2
}
...
else if (判断条件n) {
执行语句n
} else {
1.4 多层条件判断
在复杂的业务逻辑中,可以使用多层的条件判断代码是否执行。如60分以下的同学不及格重考,60分以上的同学不需要重考,这个区间又可以分为:优秀、良好、及格三个等级。
if(第一层条件){
if(第二层条件){
真正运行逻辑
}
}
三:循环
1. 循环简介
实际开发过程中,我们经常要重复某一个动作,这时需要使用到循环语句。Java提供了三种循环的语法格式。
下边是循环所应该具备的重要组成部分:
l 循环变量初始化 (初始化表达式)
2 循环出口(布尔表达式)
3 循环增量(步进表达式)
4 循环逻辑内容(循环体)
1.1 for循环
for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。
1.1.1 for循环语句的语法格式
for(初始化表达式①;布尔表达式②;步进表达式④){
循环体③
}
执行顺序: ①②③④>②③④>②③④… ②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
1.1.2 for循环注意事项
a) ①②③④四个部分均可以为空
当①为空时,注意变量作用域的范围变化
当②为空时,为条件永远为true的死循环
当③为空时,通常没有意义
当④为空时,可以将其加入到循环体中,或同样成为死循环
b) 初始化表达式①的部分可以同时定义多个变量
步进表达式可以同时将多个循环相关变量改变,控制循环条件
1.2 循环结构_while&do while
与for循环功能类似,while循环也是常见的循环结构,除此之外还有较少使用的do while循环。
1.2.1 while循环语句使用格式
初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}
执行顺序: ①②③④>②③④>②③④… ②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。
1.2.2 while循环注意事项
l 与for循环的循环变量作用域不同,for循环的循环变量其作用域仅限于循环体内,而while循环的循环变量作用域不局限在循环体内。
l 与for循环的循环条件为空是是死循环不同,while循环的循环条件不能为空。
l 我们经常会使用while(true)的方式根据需求完成一个死循环。
1.2.3 do while循环语句使用格式
初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);
执行顺序: ①③④>②③④>②③④… ②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况
1.2.4 do while循环注意事项
l do while循环的使用特点为无论是否满足条件,均至少会执行一次。
l do while循环在日常开发中遇到的较少。
1.3 循环嵌套
循环嵌套并不是一个新的知识点。只是在循环格式中嵌套使用了循环。
如for循环可以嵌套for循环:
for(初始化表达式;循环条件;操作表达式) {
………
for(初始化表达式;循环条件;操作表达式) {
执行语句
………
}
………
}
循环嵌套练习: 3排同学进行报数,每组5名同学,打印出我是第x排,第x个!
public class ForForDemo{
public static void main(String[] args){
for(int i=1; i<=3; i++){//外层循环控制有多少排
for(int j=1; j<=5; j++){//内层循环控制每排有多少人
System.out.println("我是第"+i+"排,第"+j+"个!");
}
}
}
}
1.4 无条件分支跳转
在loop/switch选择或者循环过程中,我们总是满足布尔表达条件才能执行对应的代码,然而在这些逻辑过程中,可以使用一些关键字直接跳出正在执行的代码,去执行后边或者指定位置的代码,这些关键字一旦出现就可以跳转语句执行顺序。
1.4.1 break关键字
用来跳出switch语句和循环语句
l break使用方式
无法单独使用,必须将break关键字置于switch或循环语句中。
l break运行规律
不需要判断任何条件,只要遇到break便直接跳出执行后续代码。会完全跳出选择或者循环结构。
l break只能跳出最近的代码块,不能跨越多级代码块。
如:
for(int i=0; i<10; i++) {
if(i==5) {
break;
}
System.out.println(“我爱Java”+i);
}
//会从0-4输出5次“我爱Java”
1.4.2 continue关键字
l continue使用方式
无法单独使用,必须将continue关键字置于循环语句中。
l continue运行规律
不需要判断任何条件,只要遇到continue变直接跳出本轮循环进行下次循环。
如:
for(int i=0; i<10; i++) {
if(i==5) {
continue;
}
System.out.println(“我爱Java”+i);
}
//会从0-4、6-9输出9次“我爱Java”
1.4.3 标号语句(标签)跳转
当在双层循环或者循环内有switch选择语句时,我们发现,使用break或者continue所作用的对象均是内层语句,无法直接跳出外层循环,这时就需要使用标号语句跳转了。
l 表达语句跳转的使用方式
在外层循环外的某行前边,使用后边跟有冒号”:”的标识符,即定义完毕。
使用时当在内层循环使用break或continue时后边紧跟之前定义的标号即可。
l 表达语句跳转的运行规律
当外层循环外定义了标号
内层使用break,终止内外双层循环。
内层使用continue,终止内层循环,继续外层循环。