目录
作用
可以在满足条件的情况下使内部的操作语句反复且连续的执行
for循环
for(循环初始值;循环条件;迭代语句){ //操作语句 }
循环条件:布尔表达式,声明了什么条件下循环可以继续执行
迭代语句:初始值的变化规律
//想让路奇坤绕着操场跑100圈 for (int i = 1; i <= 100; i++) { System.out.println("路奇坤正在跑第"+i+"圈"); }
-
执行流程:循环初始值--> 判断循环条件-->为true-->操作语句-->迭代语句-->判断循环条件-->直到为false-->循环结束
-
执行特点:先判断再执行,执行次数0-n
累加器:通常写在循环上方,用来对循环内部需要累计的数据做记录
//计算1-100的和 //0+1+2+3+4+5+6+..+100 值1+值2 int sum=0;//累加器:用来接收相加结果,写在循环上方 for (int i = 1; i <= 100; i++) { sum += i;//sum = sum + i; } System.out.println(sum);
for循环语法结构中的前三部分具体内容可省,但是
;
不可省for(;;){
}相当于
while(true){
}
流程控制
-
作用在循环执行的过程中调整循环的执行状态
break
跳出当前所有循环,使当前循环结束
continue
跳出本次循环,直接开始下一次
区别
-
作用不同
-
break可以作用与switch分支,continue只能作用于循环
while循环
while(循环条件){ //操作语句 }
//有条路总长10米,现在小明在走路,一步0.7米,求多少步可以把路走完 int num=0;//累加器,记录步数 double mi=0.0;//累加器,记录米数 while (true) {//永远满足循环条件 //步数+1 num++; //米数+0.7 mi += 0.7; //判断是否到达目的地 if (mi >= 10) { break; } } System.out.println(num);
死循环:永远满足循环条件,循环可以一直执行
死循环+break是while循环最常见的书写方式
-
执行流程:判断循环条件-->为true-->操作语句-->判断循环条件-->直到为false-->循环结束
-
执行特点:先判断,再执行,执行次数为0-n次
与for的关系
-
while与for的操作可以完全互等
-
for循环更适合循环次数或范围明确的情况
-
while更适合循环次数和范围不明确的情况
//需求1:有本金10000元,存入银行利率为0.03,问存入银行10年之后本金有多少 for double money = 10000.0;//本金 for (int i = 1; i <= 10; i++) {//次数 //本金的数额变化 money = money + money * 0.03; } System.out.println(money);//需求2:有本金10000元,存入银行利率为0.03,问存多少年本金可以超过15000 while int num=0;//累加器,年份 double money=10000.0;//累加器,本金 while (true) { //年数+1 num++; //重新计算本金 money = money + money * 0.03; //判断当前本金是否存够了15000 if (money >= 15000) { break; } } System.out.println("存"+num+"年,金额为:"+money);
do-while
do{ //操作语句 }while(循环条件);
-
执行流程:操作语句-->判断循环条件-->为true-->操作语句-->判断循环条件-->为false-->循环结束
-
执行特点:先执行再判断。执行次数1-n
public static void main(String[] args) { //让路奇坤跑圈,跑完一圈对其打分,直到分数>=80才能结束跑圈 Scanner sc = new Scanner(System.in); /*int score = 0; do { //跑圈 System.out.println("路奇坤正在跑圈..."); System.out.println("跑圈结束,请打分:"); //打分 score = sc.nextInt(); } while (score < 80);//判断分数*/ do{ //跑圈 System.out.println("路奇坤正在跑圈..."); System.out.println("跑圈结束,请打分:"); //打分 int score = sc.nextInt(); //判断是否需要结束循环 if (score >= 80) { break; } }while (true);//假设一直跑 }public static void main(String[] args) { //模拟学生管理系统,1-添加学生信息 2-删除学生信息 3-修改学生信息 4-查询学生信息 5-退出 //接收用户输入,只要用户不退出,系统将一直执行 用户输出==5 Scanner sc = new Scanner(System.in); int n = 0; do { System.out.println("欢迎使用学生管理系统,请选择你要进行的操作:"); System.out.println("1-添加学生信息 2-删除学生信息 3-修改学生信息 4-查询学生信息 5-退出"); //接收用户输入 n = sc.nextInt(); //判断用户输入是否不合法 if (n < 1 || n > 5) { System.out.println("输入数字不合法,请重新输入!"); continue; } } while (n != 5); }
嵌套循环
-
一个循环结构中包含着另一个循环结构
使用
-
只要逻辑完整,对嵌套循环的类型、层数不做要求(通常不超过两层)
-
执行流程:外层循环执行一次,内层循环执行一遍
-
图形输出:外层循环代表行,内层循环代表列
-
break和continue只能作用直属的循环层次