流程控制语句--循环结构--while循环语句、do--while循环语句
循环结构 while、do--while
循环结构(while循环语句)
while循环语句格式:
基本格式
while(判断条件语句) {
循环体语句;
}
完整格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
执行流程
1、先执行初始化语句。
2、判断关系表达式的结果,
如果是true,进入while循环,执行循环体内容。
如果是false,就不进入while循环,不执行循环体内容。
3、如果进入循环体内容,就执行循环体代码和控制条件语句。
4、直到关系表达式的结果为false,终止while循环。
----------------------------------------------------------------------------------------------------
死循环示例:
while(true){。。。}
程序示例
public class WhileDemo1 {
public static void main(String[] args) {
//需求:打印10遍HelloWorld
System.out.println("===============用for循环实现===============");
for(int i=1;i<=10;i++){
System.out.println("HelloWorld");
}
System.out.println("===============用while循环实现===============");
int i=1;
while (i<=10){
System.out.println("HelloWorld");
i++;
}
System.out.println("=============死循环================");
int i1 = 0;
while (true){
System.out.println("这是死循环"+i1);
i1++;
}
}
}
for循环语句和while循环语句可以等价转换,但还是有些小区别的。
while循环与for循环的区别
1、使用区别:for循环结束后,在for循环中定义的初始化变量在外部无法使用。
while循环结束后,由于初始化值变量是在while循环外部定义的,所以
在while循环外部可以访问到。
2、场景区别: for循环适合针对一个范围判断进行操作。
while循环适合判断次数不明确操作。
示例:场景区别
每分钟监控某网页登录用户的情况,直到有非法用户登录,统计在此之前的次数
boolean flag = true;
while(flag){
if(非法用户登录){
flag = false;
}
}
循环结构(do…while循环语句)
do…while循环语句格式:
基本格式
do {
循环体语句;
}while(判断条件语句);
扩展格式 //(开发中使用扩展格式)
初始化语句;
do {
循环体语句; 控制条件语句;
} while(判断条件语句);
程序示例:
public class DoWhileDemo1 {
public static void main(String[] args) {
//统计1-10之和
int sum = 0;
int i = 1;
do {
sum = sum + i;
i++;
} while (i <= 10);
System.out.println("1-10之和为:" + sum);
}
}
三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体。
注意事项:
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
程序示例:
public class DoWhileDemo3 {
public static void main(String[] args) {
int i = 0;
while (i>0){
System.out.println(i);
i--;
}
System.out.println("============do...while循环============");
do{
System.out.println(i);
i--;
}while (i>0);
}
}