joker进阶---Java的循环、循环嵌套及函数的封装应用
do-while循环与for循环 :
1. 与while不同,不管判断语句是否成立,do-while都会执行循环体一次
do{
循环体
} while(判断语句)
2. for(声明循环增量初值; 判断条件 ;增量++){
循环体
}
通过判断条件判断循环变量的初值是否能够进入循环, 通过增量的变化直至跳出循环
注意: for循环中的循环增量只在循环中有用 (作用域问题)
什么时候使用while for:
知道明确的循环停止条件时常用while;
需要遍历或遍历数组时多用for循环.
循环中的 continue break语句:
continue---结束本次循环,继续执行下一次循环
break---跳出当前循环语句,break后面同作用域的语句不会再执行
循环嵌套:
常用for循环的嵌套:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("内循环");
}
System.out.println("外循环");
}
System.out.println("循环外");
注意:循环嵌套时循环的执行顺序!用于关于矩阵的问题: 外层循环可控制一共有多少行;内层循环可控制每一行有多少个元素.
Java的Math类获取随机数:
获取的随机数实际上是"伪随机",是通过一个计算规则算出的随机数
double random = Math.random( );
获取到的返回随机数是[0 , 1).
若想获取需求范围的随机数,用公式:
Math.random( ) * (最大值 - 最小值 + 1) + 最小值;
如:获取范围为[5 , 10]的随机整数
int num = (int)(Math.random( ) * (10 - 5 + 1) + 5);
Java函数:
函数的定义: 封装了特定功能的代码块
函数的优点: 1.减少重复代码 提高开发效率;
2.通过传参数 可以提高方法的扩展性 使用率
Java函数的书写:
关键字 返回值类型 函数名(参数类型1 参数名1, 参数类型2 参数名2,......) {
函数体; // 可以有多句,也可以没有
return 返回值; // 可以没有返回值 返回值类型用void
}
注意:1. 函数的书写必须在类中,
2.且不能在函数中定义函数
3.return后面可以不跟返回值. return语句直接结束函数
函数的编写步骤:
1. 确定有没有参数 参数的类型是什么
2. 确定有没有返回值 返回值的类型是什么
3. 当要编写一个函数的时候,先看有没有系统或者自己已经编写好的函数可以使用帮助编写
函数名相同 :
函数重载:实现了相同的功能 但是内部实现不同
就可以使用函数的重载
是不是函数的重载 只跟参数有关
(只跟参数类型 参数顺序 参数个数 有关)-----判别是否是重载
跟函数的返回值类型 和 函数的实现无关
递归函数:
函数的递归实际上是函数的实现部分调用一个跟自己函数名相同的函数(自己调自己).
递归函数可用来编写阶乘:
注意: 1. 递归函数都需要一个出口
2. 自增自减在递归函数尽量不要使用,避免打印时栈溢出报错,导致出口无作用