Cyclic structures and methods acquaintance
A. Cycle
1. Why cycle
开发中我们会使用一次功能代码多次,如果使用CV大法,治标不治本!会出现以下一些问题:
1.代码过于臃肿,AJCG要求一个方法代码行最多80行!!!
2.代码阅读性极差!
3.代码维护性极差!
2. loop structure
2.1 while loop
while (/*循环条件判断*/) {
// 循环体
// (循环条件变更)
}
/*
执行流程:
首先判断while之后小括号里面的内容结果如何
如果为true,执行循环体,回到循环体条件判断
如果为false,终止循环
注意事项:
1.学会循环过程推理,避免死循环
2.如果出现了死循环,Ctrl+C 终止循环!
*/
2.2 do-while loop
do {
// 循环体
// (循环条件变更)
} while (/*循环条件判断*/);
/*
执行流程:
首先do - while循环结构会执行一次循环体,然后再判断while之后的条件
如果循环条件为true,继续执行循环体
如果循环条件为false,终止循环
*/
Supplementary knowledge while and do - while Contrast]
while循环每一次执行的循环体,都是在可控范围内的!每一次循环的执行都是在循环条件的控制之下来完成的。
do - while循环中第一次执行循环体是没有进行任何的条件判断,这里存在一定的隐患。
【个人建议】
1.能使用while完成的,尽量少用do - while结构
2.do while循环结构可以使用于一些特定场景。
2.3 for loop
for (/*循环条件初始化*/;/*循环条件判断*/;/*循环条件变更*/) {
// 循环体
}
/*
for循环优势
for循环小括号里面的条件可以简要的推出当前循环的执行次数和执行条件,后期使用到数组,算法中非常常见。
*/
下图为for循环执行过程:
![for loop execution](https://img-blog.csdnimg.cn/20200208142040208.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMTk3OTkx,size_16,color_FFFFFF,t_70)
3.break keyword
字面含义:
打破。
在switch - case功能中,跳出case选择或者是default选择。
break在循环中使用是用于跳出循环。
4.continue keyword
字面含义:
继续!
功能:
结束本次循环,直接进入下一次循环!!!
使用注意事项:
1.在while循环和do - while循环使用,需要注意continue关键字和循环条件变更之间的位置关系,防止出现死循环的情况!
2.for循环中使用continue关键字没有套多的顾虑。
5. recycled summary
`1.学会找出代码中运行的规律,完成对于循环的实现。
数组,集合,数据遍历,算法.....
2.时时刻刻注意循环中的坑
死循环,continue....
3.学会循环变量的推理过程
for循环次数,循环终止条件...
4.学会使用嵌套循环
5.模块化处理的思想
6.普适性代码,以及代码延展性的考虑
II. Methodology
2.1 Why Use
上午使用循环解决了一部分代码复用的问题,但是治标不治本。代码依然会出现以下问题:
1.代码过于臃肿
2.阅读性极差
3.维护性极差
2.2-painted gourd dipper, the main method to find a teacher
public static void main(String[] args) {
//方法体
}
/*
public static : 不要问!!!
void:返回值类型,这里void表示没有返回值
main:方法名,需要符合小驼峰命名方式,见名知意,动宾结构
(String[] args): 形式参数列表
方法的模板:
public static returnType MethodName(Arguments) {
Method Body
}
*/
方法定义的位置
2.3 None None Return Value Method Parameter
/*
需求
展示一个烤羊排
方法分析
public static 固定格式,不要问
返回值类型:void
方法名:bbq
形式参数列表: ()
方法声明
public static void bbq()
*/
/**
* 打印烤羊排~~~
*/
public static void bbq() {
}