「9」循环控制
一、while和do-while循环
1、while循环语句
●为什么需要循环语句?
●需要反复执行同样的操作
●如果不用循环语句,顺序执行相同代码,代码拖沓冗余
●循环语句精简代码,重用代码
●循环语句代码可读性、可维护性更好
●语法
while、do-while和for均属于循环语句
while(循环条件) { ←满足条件:循环持续执行
//循环操作语句 ←循环中被重复执行的操作
}
●要点
1.先判断再执行
2.循环次数不定
3.避免死循环
●流程图
●示例:输入一个正整数,把整数逆序输出,比如输入12345,输出54321。
●问题分析步骤:
●确定循环条件:什么情况下要一直循环下去。
●确定循环操作:确定循环做什么事情。
●把循环条件和循环操作语句填入合适的循环语句结构中即可。
import java.util.Scanner; public class WhileDemo{ public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println("请输入一个整数"); int number=input.nextInt(); //number=12345 while(number!=0){ int res=number%10; System.out.print(res); //number=number/10; number/=10; } } }
2、do-while循环语句
●语法
while循环又称当型循环
do-while循环又称直到型循环
do{
//循环操作语句 ←先执行一次循环操作
}while(循环条件); ←满足条件:循环继续执行
●要点
1.先执行再判断
2.至少执行一次
3.最后的分号勿漏
●流程图
●示例:计算从1开始的连续n个自然数之和,当其和值刚好超过100时结束,求这个n值。
●问题分析步骤:
●确定循环条件:什么情况下要一直循环下去。
●确定循环操作:确定循环做什么事情。
●把循环条件和循环操作语句填入合适的循环语句结构中即可。
public class DoWhileDemo{ public static void main(String[] args){ int n=0;//要被加的数 int sum=0;//累加求和 /*do{ n++; sum+=n; }while(sum<=100);*/ while(sum<=100){ n++; sum+=n; } System.out.println("sum="+sum); System.out.println("n="+n); } }
二、for循环
1、for循环语句
●语法
参数初始化① 条件判断② 更新循环变量④
for( 表达式1 ; 表达式2 ; 表达式3 ){
③循环操作 ;
}
执行顺序:1.参数初始化;2.条件判断,条件为true;3.循环体被执行;4.更新循环变量;转第二步
●要点
1.第一次循环顺序:1、2、3、4
2.以后循环顺序:2、3、4
3.每次循环操作前提条件是2为真
●流程图
●注意事项
1.for循环的3个表达式都可以省略
2.表达式1可以是逗号分隔的多个变量初始化表达式,也可省略,我们可以把它提到for语句之前
3.表达式2省略了会导致死循环。条件永远为true
4.表达式3省略,可能也会导致条件永远成立,会形成死循环。我们也可以把它挪到循环体末尾
5.3个表达式全部省略,会死循环
6.强调:3个表达式都可以省略,但两个分号不能省略
2、while循环和for循环的对比
●循环类型
while循环是不确定型循环(循环次数不确定)
for循环是确定型循环(循环次数确定)
●相互转换
while循环和for循环可以相互转换
●使用场合
当循环次数确定时,使用for循环
当循环次数不确定时,使用while循环
3、二重循环
●二重循环语法:
for(表达式1;表达式2;表达式3){//外循环
for(表达式1;表达式2;表达式3){//内循环
}
}
●二重循环的特点:
●在循环体内含有一个循环语句的循环称为二重循环
●当外循环循环一次,内循环要循环完毕,再回到外循环进入下一次循环,直到外循环循环完毕为止。
●计算某天星期几的方法
星期× = 1 + 距离1900年1月1日的天数差 % 7
三、break和continue语句
1、break语法及使用
●语法
●break:改变程序控制流
●在switch/case语句中用于跳出switch代码块
●在循环语句中,用于跳出循环而执行后面的语句
●要点
●结束循环之用
●改变循环执行次数
●只跳出本循环(最近包含它的那个循环)
●扩展用法
●后跟标签
定向跳转至标签处,可以突破本层循环限制,标签放在循环之前,和循环之间不能有其它语句。(循环前写上标签名冒号,给这个循环起名,跳出这个标签记号的循环)
2、continue语法及使用
●语法
●continue作用:跳过循环体中剩余语句而执行下一次循环
●要点
●没有结束循环
●没有改变循环执行次数
●只在本层循环中起作用
●扩展用法
●后跟标签
定向跳转至标签处,可以突破本层循环限制,标签放在循环之前,和循环之间不能有其它语句。(循环前写上标签名冒号,给这个循环起名,跳到这个标签记号的循环)