4.1循环结构
4.1.2什么是循环
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
4.2循环结构的分类
for循环;
while循环;
4.2.1循环结构for语句格式
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}
- 执行流程
执行初始化表达式语句。
执行判断条件语句,看其返回值是true还是false。
如果是true,就继续执行;
如果是false,就结束循环;
执行循环体语句;
执行控制条件语句;
- 注意事项
初始化表达式语句只执行一次。
4.2.2循环结构for语句的练习之获取数据
案例演示:
需求:请在控制台输出数据1-10;
需求:请在控制台输出数据10-1;
结果:
注意事项:
判断条件语句无论简单还是复杂结果是boolean类型。
循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号。
- 案例演示
需求:求出1-100之间偶数和;
需求:求出1-100之间奇数和;
结果:
4.2.3循环结构for语句的练习之水仙花
- 案例演示:
需求:在控制台输出所有的”水仙花”。
需求:统计”水仙花数”共有多少个。
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153;
结果:
4.2.4循环结构while语句的格式和基本使用
- 循环结构while语句的格式
while循环的基本格式:
while(判断条件语句) {
循环体语句;
}
完整格式:
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
- 执行流程
执行初始化条件语句;
执行判断条件语句,看其返回值是true还是false;
如果是true,就继续执行;
如果是false,就结束循环;
执行循环体语句;
执行控制条件语句;
- 案例演示
需求:求1-100之和
结果:
4.2.5循环结构do...while语句的格式和基本使用
- 循环结构do...while语句的格式
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
- 执行流程
执行初始化条件语句;
执行循环体语句;
执行控制条件语句;
执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
- 案例演示
需求:请在控制台输出数据1-10
结果:
4.3循环结构三种循环语句的区别
4.3.1区别
(1)do...while循环至少执行一次循环体。
而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
(2)如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。
因为变量及早的从内存中消失,可以提高内存的使用效率。
建议优先考虑for循环,然后是while循环 ,最后是do...while循环.
- 循环结构注意事项之死循环
一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
两种最简单的死循环格式:
(1)while(true){...}
(2)for(;;){...}
4.4循环结构循环嵌套输出
-
案例演示
- 案例一
需求:请输出一个6行6列的星星(*)图案。
结果:
- 注意:
System.out.println("*");输出值后换行;
System.out.print("*");输出值不换行;
- 结论:
外循环控制行数,内循环控制列数;
- 案例二
需求:请用(*)输出正三角形
结果:
- 案例三
代码优化
'\x' x表示任意,这种做法叫转义字符;
'\t' tab键的位置;
'\n' 换行;
需求:在控制台输出九九乘法表。
结果:
4.5控制跳转语句
4.5.1什么是控制跳转语句
前面我们已经说过了,Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环执行到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
4.5.2控制跳转语句的分类
break 中断;
continue 继续;
return 返回 ;
4.5.3break的使用场景
(1)在选择结构switch语句中;
(2)在循环语句中;
注意:离开时使用break的存在是没有意义的
- 作用
退出单层循环;
退出多层循环(几乎不使用);
4.5.4continue的使用场景
(1)在循环语句中;
(2)离开使用场景的存在是没有意义的;
- 作用
跳出一次循环,执行下一步操作;
for(int x=1; x<=10; x++) {
if(x%3==0) {
//continue
}
System.out.println(“Java基础班”);
}
结果:输出7次:“Java基础班“
4.5.5控制跳转语句return语句
- return的作用
return 就是退出一个方法。
跳转到上层调用的方法。这个在方法的使用那里会在详细的讲解。
4.6方法概述和格式说明
4.6.1为什么要有方法
假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹(植物大战僵尸)。
发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。
为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,程序在需要发射炮弹时调用该方法即可。
4.6.2什么是方法
方法就是完成特定功能的代码块
在很多语言中都有函数的定义,但是在咱们JAVA语言中,我们将其称之为方法。
- 方法的格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ....){
方法体;
return 返回值;
}
- 方法的格式详细说明
(1): 修饰符 比较多,后面会详细介绍。目前使用 public static
(2): 返回值类型 用于限定返回值的数据类型
3): 方法名 就是一个名称,它的存在是为了方便我们调用方法
(4): 参数类型 限定调用方法时传入参数的数据类型
(5): 参数名 是一个变量,接收调用方法时传入的参数这个参数其实有一个专业的名词,被称之为形式参数,它的作用是用来接收实际参数的.
(6): 方法体 完成功能的代码
(7): return 结束方法以及返回方法指定类型的值
(8): 返回值 就是功能的结果,由return带回,带回给调用者
4.6.2方法之求和 及其调用
- 如何写一个方法
两个明确
(1):返回值类型 明确功能结果的数据类型
(2):参数列表 你要传递几个参数,以及每一个参数的数据类型
- 方法调用
a:单独调用,一般来说没有意义,所以不推荐。
b:赋值调用,推荐方案。
c:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
4.6.3方法的注意事项
A: 方法不调用不执行
B: 方法与方法是平级关系,不能嵌套定义
C: 方法定义的时候参数之间用逗号隔开
D: 方法调用的时候不用在传递数据类型
E: 如果方法有明确的返回值,一定要由return带回一个值