第六章
循环结构
学习目标,
? while语句
? for循环结构
? do循环
? continue关键字使用
循环
? 循环语句的作用是反复执行同一块代码
直到满足结束条件 。
? 在现实世界的许多问题中需要用到循环
控制 。 例如:累加求和 。
while 循环
? 语法形式为,
while (布尔表达式 )
{
语句组;
}
? 执行过程,
1、先计算 布尔表达式
2、若为 真 则执行语句组,并转回再计算 布尔表达式
3、若为 假 则跳出循环,执行后面的语句。
小心:一定不要在 while(布尔表达式)后面加;
while 循环的流程图
true
false
循环体
布尔表达式
例:用 while语句求 1+2+…+10 的和。
public class WhileTry
{
public static void main(String[ ] args)
{
int i;
int sum=0; //累加器清 0
i=1; //i的初始值为 1
while (i<=10)
{
sum+=i;
i++;
}
System.out.println("sum="+sum);
}
}
查看结果,WhileTry.java
?要打印一个如下所示的矩形
@@@@@@@@@@
@@@@@@@@@@
@@@@@@@@@@
?内部循环打印列,外部循环打印行
?,行慢列快,
嵌套循环
查看结果,NestedWhileLoop.java
?按照预先定义好的次数循环执行一组语句
?等同于 while循环,但有更集中的结构
for循环
语法形式为,
for (表达式 1; 表达式 2; 表达式 3)
{
语句组;
}
例如,要使循环执行某一段代码 1000次,可以表达为,
for (int number=0; number<1000; number++)
{
… //一段代码
}
for循环的流程图
每个 for语句都有一个用于决定循环开始
和结束的变量,通常称这个变量为 循环
控制变量 。
表达式 1用来给循环控制变量赋初值,它
只在循环开始的时候 执行一次 。
表达式 2是一个布尔表达式,用来决定何
时终止循环。
表达式 3用于改变循环控制变量的值。
for 语句的执行过程如下,
1,先求解 表达式 1
2,求解 表达式 2,若其值为 true,则执行
for语句中的循环体,然后执行下面第 3
步。若值为 false,则结束循环,转到第
5步
3、求解 表达式 3
4、转回上面第 2步继续执行
5、执行 for语句下面的一个语句
true
false
求解表达式 3
表达式 2
循环体
for语句的下一句
求解表达式 1
for循环示例
?for ( int i = 1; i <= 100; i++ )
?for ( int i = 100; i >= 1; i-- )
?for ( int i = 7; i <= 77; i += 7 )
嵌套 for循环
查看结果,NestedForLoop.java
例:用 for语句求 1+2+…+10 的和
public class ForTry
{
public static void main(String[ ] args)
{
int i,sum;
sum=0; // 累加器清 0
for(i=1;i<=10;i++)
{
sum+=i;
}
System.out.println("sum="+sum);
}
}
do 循环是,
?类似于 while循环的循环
?一个一层 /多层重复循环
while循环和 for循环都是 0层 /多层
重复循环
do 循环
? 语法形式
do{
语句组;
}
While(布尔表达式 );
? 执行过程,
先执行一次循环体中的语句,然后测试 布尔表达式 的值。如果 布
尔表达式 的值为 真,那就返回执行循环体中的内容。 do-while 语
句将不断地测试 布尔表达式 的值并执行循环体中的内容直到 布尔表达式 的值为 假 为止。
注意,While(布尔表达式 )后面必须有 ;
do 循环
do-while 循环的流程图
true
循环体
布尔表达式
false
查看结果,FindAThree.java
do…while 循环与 while循环的不同在于,
?while是先检查条件是否成立后执行语句
?而 do…while 是先执行语句后再检查继续的条件 。
?While—— 可以 无限次 地重复执行语句,并
且执行语句的次数可以是 0次 或 多次
?Do—— 可以 无限次 地重复执行语句,并且
执行语句的次数可以是 1次 或 多次
?For—— 可以按照预先定义好的次数循环执
行语句
比较多种循环结构
查看结果,TestDo.java
continue 语句
Continue语句只能用在 while,for和 do循
环内部。
它和 break语句的区别是,
?break语句使程序的流程从一个语句块内部
转移出去。
?continue 语句是终止当前这一轮的循环,
直接进入下一轮的循环。而不是终止整个
循环的执行。
查看结果,BreakLoop.java和 BreakLoop2.java
查看结果,Multiples.java
public class ContinueTest
{
public static void main(String args[])
{
for(int i=0;i<10;i++)
{
System.out.print(i+" ");
if((i%2)==0)
continue;
System.out.println();
}
}
}
查看结果,ContinueTest.java
循环结构
学习目标,
? while语句
? for循环结构
? do循环
? continue关键字使用
循环
? 循环语句的作用是反复执行同一块代码
直到满足结束条件 。
? 在现实世界的许多问题中需要用到循环
控制 。 例如:累加求和 。
while 循环
? 语法形式为,
while (布尔表达式 )
{
语句组;
}
? 执行过程,
1、先计算 布尔表达式
2、若为 真 则执行语句组,并转回再计算 布尔表达式
3、若为 假 则跳出循环,执行后面的语句。
小心:一定不要在 while(布尔表达式)后面加;
while 循环的流程图
true
false
循环体
布尔表达式
例:用 while语句求 1+2+…+10 的和。
public class WhileTry
{
public static void main(String[ ] args)
{
int i;
int sum=0; //累加器清 0
i=1; //i的初始值为 1
while (i<=10)
{
sum+=i;
i++;
}
System.out.println("sum="+sum);
}
}
查看结果,WhileTry.java
?要打印一个如下所示的矩形
@@@@@@@@@@
@@@@@@@@@@
@@@@@@@@@@
?内部循环打印列,外部循环打印行
?,行慢列快,
嵌套循环
查看结果,NestedWhileLoop.java
?按照预先定义好的次数循环执行一组语句
?等同于 while循环,但有更集中的结构
for循环
语法形式为,
for (表达式 1; 表达式 2; 表达式 3)
{
语句组;
}
例如,要使循环执行某一段代码 1000次,可以表达为,
for (int number=0; number<1000; number++)
{
… //一段代码
}
for循环的流程图
每个 for语句都有一个用于决定循环开始
和结束的变量,通常称这个变量为 循环
控制变量 。
表达式 1用来给循环控制变量赋初值,它
只在循环开始的时候 执行一次 。
表达式 2是一个布尔表达式,用来决定何
时终止循环。
表达式 3用于改变循环控制变量的值。
for 语句的执行过程如下,
1,先求解 表达式 1
2,求解 表达式 2,若其值为 true,则执行
for语句中的循环体,然后执行下面第 3
步。若值为 false,则结束循环,转到第
5步
3、求解 表达式 3
4、转回上面第 2步继续执行
5、执行 for语句下面的一个语句
true
false
求解表达式 3
表达式 2
循环体
for语句的下一句
求解表达式 1
for循环示例
?for ( int i = 1; i <= 100; i++ )
?for ( int i = 100; i >= 1; i-- )
?for ( int i = 7; i <= 77; i += 7 )
嵌套 for循环
查看结果,NestedForLoop.java
例:用 for语句求 1+2+…+10 的和
public class ForTry
{
public static void main(String[ ] args)
{
int i,sum;
sum=0; // 累加器清 0
for(i=1;i<=10;i++)
{
sum+=i;
}
System.out.println("sum="+sum);
}
}
do 循环是,
?类似于 while循环的循环
?一个一层 /多层重复循环
while循环和 for循环都是 0层 /多层
重复循环
do 循环
? 语法形式
do{
语句组;
}
While(布尔表达式 );
? 执行过程,
先执行一次循环体中的语句,然后测试 布尔表达式 的值。如果 布
尔表达式 的值为 真,那就返回执行循环体中的内容。 do-while 语
句将不断地测试 布尔表达式 的值并执行循环体中的内容直到 布尔表达式 的值为 假 为止。
注意,While(布尔表达式 )后面必须有 ;
do 循环
do-while 循环的流程图
true
循环体
布尔表达式
false
查看结果,FindAThree.java
do…while 循环与 while循环的不同在于,
?while是先检查条件是否成立后执行语句
?而 do…while 是先执行语句后再检查继续的条件 。
?While—— 可以 无限次 地重复执行语句,并
且执行语句的次数可以是 0次 或 多次
?Do—— 可以 无限次 地重复执行语句,并且
执行语句的次数可以是 1次 或 多次
?For—— 可以按照预先定义好的次数循环执
行语句
比较多种循环结构
查看结果,TestDo.java
continue 语句
Continue语句只能用在 while,for和 do循
环内部。
它和 break语句的区别是,
?break语句使程序的流程从一个语句块内部
转移出去。
?continue 语句是终止当前这一轮的循环,
直接进入下一轮的循环。而不是终止整个
循环的执行。
查看结果,BreakLoop.java和 BreakLoop2.java
查看结果,Multiples.java
public class ContinueTest
{
public static void main(String args[])
{
for(int i=0;i<10;i++)
{
System.out.print(i+" ");
if((i%2)==0)
continue;
System.out.println();
}
}
}
查看结果,ContinueTest.java