循环结构
do-while循环
do{循环体}while(判断条件)
do-while循环 不管判断条件 是否成立 都会先执行循环体一次
//打印10次 你开心吗?
int a = 0;
do {
System.out.println(“你开心吗? “+a);
a++;//循环增量自增
}while(a < 10);
break在while循环中的作用
int number = 0;
while(number < 10) {
if(number == 5) {
//break可以结束当前的循环
//注意:break后面不写代码
break;
}
System.out.println(number);
number++;
}
for循环
for(声明循环增量;判断条件;增量自增){
循环体
}
计算1~10的和(使用for循环)
int num = 0;//声明一个变量保存和
for(int i = 0;i < 11;i++) {
num = num + i;//计算和
}
System.out.println(num);
嵌套for循环
for (int i = 0; i < 5; i++) {
外循环
for (int j = 0; j < 5; j++) {
内循环
}
}
循环外
打印矩形
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
/*
* 利用for循环打印矩形
* 外循环控制有几行
* 内循环控制有几列
*/
System.out.print(“*”);
}
System.out.println(“”);//换行
}
双层循环中break 结束的是本层循环 不影响外层循环
双层循环中continue 结束本次循环 继续下一次循环 也不影响外层循环
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (j==2) {
break ;
//continue;
}
System.out.print(i+”,”+j+”\t”);
}
System.out.println();
}
做题时 如何选用循环
如果有明确的循环停止条件 一般用while循环
数组一般使用 for循环
一般使用死循环 都使用while
如果不知道要循环多少次 可以用死循环来写,然后用break来结束循环
//for循环的死循环
for(;;) {
System.out.println();
}
随机数
随机数(使用系统提供的Math类)
伪随机:计算机在取随机数的时候 都是按照一定规则取随机
random()方法
取值范围[0,1) 0~1之间的小数(不包括1)(留头不留尾)
公式:
(最大值 - 最小值 + 1) + 最小值
//随机[15,200]的整数 10个 并找出最大值
int max = 0;
for (int i = 0; i < 10; i++) {
int num = (int)(Math.random()*186 + 15);
System.out.print(num + ” “);
if (max < num) {
max = num;
}
}
System.out.println();
System.out.println(“最大值: “+max);
函数
函数 封装了特定功能的代码块
函数好处: 增加代码的重复使用率 提高效率
函数的写法
参数列表(可以是多个 也可以没有)⬇️
关键字 返回值类型 函数名字(参数类型1 参数名1,参数类型2 参数名2,…){
函数体(执行代码)
return 返回值;(返回值 和 函数声明上 返回值类型保持一致)
}
函数可以没有返回值
这是 函数声明上的返回值类型 使用void表示
函数名 使用小驼峰写法
关键字 照抄 public static
书写位置:
1.在类中书写
2.函数中不能定义函数
编写函数的步骤:
1.明确函数的参数
2.明确函数的返回值
函数的重载:
当函数的功能相同 但是代码实现不同时,可以使用相同的函数名来声明
注意:函数的重载 只跟你参数有关(数量 类型 顺序有关)
跟 参数名 返回值类型 无关
打印N行M列的矩形
public static void fun1(int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(“*”);
}
System.out.println();
}
}
public static void main(String[] args) {
//调用打印矩形的函数
//直接使用 函数名(传入的参数); 调用
fun1(3,8);//打印3行8列的矩形
}