循环语句有哪些
Java中有三种主要的循环结构:
while 循环
do…while 循环
for 循环
在Java5中引入了一种主要用于数组的增强型for循环。
一、for循环语句
虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化语句;判断条件语句;控制条件语句) {
//循环体语句;
}
for( int i = 0;i < 5 ;i++ ){
//循环体
}
//for结束
执行流程:
1.执行初始化语句
2.执行判断条件语句,看其结果是true还是false:如果是false,循环结束;如果是true,继续执行。
3.执行循环体语句
4.执行控制条件语句
5.回到2继续
流程图:
代码举例:
1.从控制台输出100遍,“好好学习,天天向上!”
public class Test {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
System.out.println("第"+i+"遍:好好学习,天天向上!");
}
}
}
2.求出1-100之和
/*
需求:求1-100之和。
*/
public class Test {
public static void main(String[] args) {
// 保存1-100之和。
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("1-100之和是:" + sum);
}
}
3.求5的阶乘
/*
需求:求5的阶乘。
什么是阶乘呢?
n! = n*(n-1)! 规则
n! = n*(n-1)(n-2)…*3*2*1
*/
class ForTest2 {
public static void main(String[] args) {
//定义最终结果变量
int jc = 1;
//这里的x其实可以直接从2开始
//for(int x=1; x<=5; x++)
for(int x=2; x<=5; x++) {
jc *=x;
}
System.out.println("1-5的阶乘是:"+jc);
}
}
二、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++;
}
}
}
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+"次,高度才能不低于珠穆朗玛峰的高度");
}
}
三、do-while循环语句
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。 do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
//基本格式:
do {
循环体语句;
}while( 判断条件语句 );
//扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
} while( 判断条件语句 );
注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
特点:先执行,再判断
执行流程:
- 执行初始化语句
- 执行循环体语句
- 执行控制条件语句
- 执行判断条件语句,看其结果是true还是false:如果是false,循环结束;如果是true,继续执行。
- 回到2继续
流程图:
四、跳转语句
1 、break 语句的使用
break 语句用于终止某个语句块的执行,循环终止。
break 可用于 循环结构和switch选择结构中;
2、 continue 语句的使用
continue语句用于跳过某个循环语句块的一次执行,然后执行下轮的循环。
continue 只能用于 循环结构中…
注意!!!: break 与 continue 语句后面的代码不会被执行,顾 break 与 continue 后面不能写代码。