循环和方法
1. 循环结构
1.1 do - while循环
do {
// 循环体
// 循环条件变更
} while (/* 循环判断条件 true false */);
/*
执行流程:
代码运行到do - while循环结构,首先执行一次循环体,之后判断while小括号里面的条件是否为true,如果为true,继续循环,如果为false,终止循环!!!
*/
1.2 while和do - while区别
while循环每一次的执行都是在循环条件判断之下才可以执行的
但是do while第一次执行么有任何的限制
每一个代码的执行,都是在可控范围以内。
程序员生存法则【已知,可控】
1.3 for循环【重点】
for (/* 循环条件初始化 */; /* 循环条件判断 */; /* 循环条件变更 */) {
// 循环体
}
1.4 break关键字
跳出循环结构和switch case结构。
在【满足条件】的情况下会执行break终止循环,和switch case
class Demo3 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (5 == i) { // i == 5
System.out.println("终止循环");
break;
}
System.out.println(i);
}
}
}
1.5 continue关键字【鸡肋】
继续
终止本次循环,直接进入下一次循环
continue使用建议:
最好不要用于while和do while循环,极有可能导致死循环
但是for循环和continue一起使用是没有死循环顾虑的。
如果非要使用continue关键字最好在for循环中使用。
2. 方法【重点】
2.1 为什么使用方法
代码中存在复用的代码块,当然这些代码块如果使用循环结构来解决,可以解决一部分问题,但是大量使用for循环还是会导致其他问题
1. 代码过于臃肿
2. 代码阅读性极差
3. 代码维护性极差
2.2 比葫芦画瓢main方法
public static void main(String[] args) {
// 方法体
}
/*
public static
不要问
void
返回值类型 void表示这里没有返回值
main
方法名,需要做到见名知意,动宾结构,小驼峰命名法
(String[] args)
形式参数列表 形参
当前方法运行需要外来数据
{
方法体
}
封装的功能代码!!!
*/
public static 返回值类型returnType 方法名methodName(形式参数列表arguments) {
方法体 Method Body;
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mDekrp9i-1582116619808)(.\img\QQ图片20191126212449.jpg)]
2.3 无参数无返回值方法
/*
需求:
打印一个骚磊告诉你不要问
方法分析:
public static 不要问
返回值类型:
void 没有返回值
方法名:
saoLeiTellYou 骚磊告诉你
形式参数列表:
() 没有参数
方法声明:
public static void saoLeiTellYou()
*/
class Method1 {
public static void main(String[] args) {
/*
方法是条狗,哪里需要哪里吼
这里需要调用方法名,方法调用必须有小括号
*/
saoLeiTellYou();
saoLeiTellYou();
saoLeiTellYou();
saoLeiTellYou();
saoLeiTellYou();
}
/*
方法是定义在class大括号以内,其他方法之外
*/
public static void saoLeiTellYou() {
System.out.println("老刘友情提示不要喊我hello world~~~");
}
}
2.4 有参数无返回值方法
/*
需求:
打印展示两个int类型数据之和
方法分析:
public static 不要问
返回值类型:
void 没有返回值
方法名:
printSumOfTwoNumber
形式参数列表:
(int num1, int num2)
方法声明:
public static void printSumOfTwoNumber(int num1, int num2)
*/
class Method2 {
public static void main(String[] args) {
// 形式参数列表参数个数,数据类型必须和实际参数一致!!!
printSumOfTwoNumber(5, 10);
}
public static void printSumOfTwoNumber(int num1, int num2) {
System.out.println(num1 + num2);
}
}
2.5 无参数有返回值方法
/*
需求:
给我一个5
方法分析:
public static 不要问
返回值类型:
int 这里需要返回一个数字5
方法名:
giveMeFive
形式参数列表:
()
方法声明:
public static int giveMeFive()
*/
class Method3 {
public static void main(String[] args) {
int num = 0;
num = giveMeFive();
System.out.println(num);
}
public static int giveMeFive() {
/*
这里需要一个关键字 return
1. 返回当前return之后的数据!!!
2. 结束当前方法的运行!!!
*/
return 5;
}
}
2.6 有参数有返回值方法
/*
需求:
获取两个float类型数据之和
方法分析:
public static 不要问
返回值类型:
float
方法名:
getSumOfTwoNumber
形式参数列表:
(float num1, float num2)
方法声明:
public static float getSumOfTwoNumber(float num1, float num2)
*/
class Method4 {
public static void main(String[] args) {
float ret = 0.0F;
ret = getSumOfTwoNumber(5.5F, 4.5F);
System.out.println("ret = " + ret);
}
public static float getSumOfTwoNumber(float num1, float num2) {
return num1 + num2;
}
}