1、While循环:
例1:
package cn.ensource.loop;public class WhileDemo3 {public static void main(String[] args) {// 目标:掌握while循环的书写格式,以及理解其执行流程// 需求:打印多行Hello Worldint i = 0;while (i < 5) {System.out.println("Hello World");i++;}}
}
注意:其中i++的迭代语句,我们不要忘记了,不然这个循环是一个死循环。
while循环和for循环有什么区别?什么时候是for,什么时候用while?
功能上是完全一样,for能解决的问题,while也能解决,反之亦然。
使用规范:知道循环几次,使用for;不知道循环几次建议使用while。while循环可以用于不确定循环次数的情况。
while循环案例:
需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
package cn.ensource.loop;public class WhileDemo3 {public static void main(String[] args) {// while案例double paper_thickness = 0.1; // 纸张厚度double height_zhufeng = 8848860; //珠峰高度int counter = 0; //纸张折叠次数while(height_zhufeng > paper_thickness) {paper_thickness *= 2; // 纸张折叠一次,厚度就是原来的两倍counter++;}System.out.println("纸张折叠次数: " + counter);}
}
设置断点进行调试:
package cn.ensource.loop;public class WhileDemo3 {public static void main(String[] args) {// while案例double paper_thickness = 0.1; // 纸张厚度double height_zhufeng = 8848860; //珠峰高度int counter = 0; //纸张折叠次数while(height_zhufeng > paper_thickness) {paper_thickness *= 2; // 纸张折叠一次,厚度就是原来的两倍counter++;}System.out.println("纸张折叠次数: " + counter);System.out.println("最终纸张的厚度: " + paper_thickness);}
}
我们也能算出最终纸张的厚度:
使用规范:如果一开始不知道循环次数的情况下,建议使用while循环解决更专业。一开始就知道循环几次的情况下,使用for循环解决更专业。
do-while循环:
例:
package cn.ensource.loop;public class DoWhileDemo4 {public static void main(String[] args) {// 目标:掌握do-while语句的书写格式、执行流程、应用场景// 打印多行Hello Worldint i = 1;do {System.out.println("Hello World");i++;} while( i <= 3);}
}
do-while的特点:先执行后判断。
package cn.ensource.loop;public class DoWhileDemo4 {public static void main(String[] args) {// 目标:掌握do-while语句的书写格式、执行流程、应用场景do {System.out.println("Hello World");} while(false);}
}
直接循环条件为false,我们可以看到还是打印了一次Hello World语句。先执行的打印语句,然后再进行判断。
do-while循环应用场景案例:
刷票系统。
for循环和while循环的其他区别:
在for循环中,控制循环的变量只能在循环中使用。
while循环中,控制循环的变量在循环后还是可以继续使用。
可以将for循环中的控制循环的变量拿出来放到外边。
package cn.ensource.loop;public class DoWhileDemo4 {public static void main(String[] args) {// 目标:掌握do-while语句的书写格式、执行流程、应用场景int n = 0;while (n < 10) {System.out.println("Hello World");n++;}System.out.println(n);}
}
注意:这个n的最终值是10, 这是这段代码的特点。