4.1.1 while循环语句
while是最基本的循环,它的结构为:
while( 判断条件语句 ) {
循环体语句;
}
/**扩展格式**/
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
注意:只要布尔表达式(判断条件语句)为 true,循环体会一直执行下去。
特点:先判断,再执行
执行流程:
执行初始化语句
执行判断条件语句,看其结果是true还是false:如果是false,循环结束;如果是true,继续执行。
执行循环体语句
执行控制条件语句
回到2继续
流程图:
代码举例:
/**
* 实现:从控制台输出100遍 "好好学习,天天向上!"
**/
public class Test {
public static void main(String args[]) {
int x = 1;
while( x <= 100 ) {
System.out.println("第" + x +"遍:好好学习,天天向上!");
x++;
}
}
}
4.1.1.1 for循环 与 while循环 的区别
for循环语句和while循环语句可以等价转换,但还是有些小区别的。
使用区别:
- 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
场景区别:
for循环适合针对一个范围判断进行操作(循环次数固定的情况)
while循环适合判断次数不明确操作(循环次数不固定的情况)
代码举例:
问:我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
/* 我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。 请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度? 分析: A:定义一个统计折叠次数的变量,默认值是0 B:最高山峰是珠穆朗玛峰:8848m这是最终的厚度 我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度 C:我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度? 折叠一次有什么变化呢?就是厚度是以前的2倍。 D:只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++ E:输出统计变量。 提示!此时循环次数不明确,所以选择 while循环比较合适。 */ class WhileTest { public static void main(String[] args) { //定义一个统计变量,默认值是0 int count = 0; //最高山峰是珠穆朗玛峰:8848m这是最终的厚度 int end = 884800; int start = 1; while(start<end) { //只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++ count++; //折叠一次有什么变化呢?就是厚度是以前的2倍。 start *= 2; System.out.println("第"+count+"次厚度是"+start); } //输出统计变量。 System.out.println("要叠"+count+"次,高度才能不低于珠穆朗玛峰的高度"); } }
4.1.2 do-while循环语句
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
//基本格式:
do {
循环体语句;
}while( 判断条件语句 );
//扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
} while( 判断条件语句 );注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
特点:先执行,再判断
执行流程:
执行初始化语句
执行循环体语句
执行控制条件语句
执行判断条件语句,看其结果是true还是false:如果是false,循环结束;如果是true,继续执行。
回到2继续
流程图:
4.2 跳转语句
4.2.1 break 语句的使用
break 语句用于终止某个语句块的执行,循环终止。
break 可用于 循环结构和switch选择结构中;
4.2.2 continue 语句的使用
continue 语句用于跳过某个循环语句块的一次执行,然后执行下轮的循环。
continue 只能用于 循环结构中...
注意!!!: break 与 continue 语句后面的代码不会被执行,顾 break 与 continue 后面不能写代码。
4.3循环的嵌套
4.3.1 从控制台打印直角三角形
4.3.2从控制台打印倒直角三角形
4.3.3从控制台打印直角三角形(每行星星数量为奇数个1、3、5、7、9...)
4.3.4从控制台打印等腰三角形
4.3.5从控制台打印菱形
4.3.6 从控制台打印九九乘法表
4.3.7 打印出圣诞树🎄(挑战,不要求)