第六章:循环结构(二)
一. for 循环
1.循环结构的四个组成部分
(1). 初始部分:设置循环的初始状态,比如我们设置记录循环次数的变量 i 为 0 .
(2). 循环体:重复执行的代码 .
(3). 迭代部分:下一次循环开始前要执行的部分,在while循环中它作为循环体的一部分,比如使用"i++;"进行循环次数的累加 .
(4). 循环条件:判断是否继续循环的条件 .
语法
for(表达式1; 表达式2; 表达式3)
{
循环体
}
2.for 循环中三个表达式的含义
表达式 形式 功能 举例
表达式 1 赋值语句 循环结构的初始部分,
为循环变量赋初值 int i = 0
表达式 2 条件语句 循环结构的循环条件 i < 100
表达式 3 赋值语句,通常使用++或--运算符 循环结构的迭代部分,
通常用来修改循环变量的值 i++
2. 执行顺序
(1). 执行初始部分 (int i = 0;) .
(2). 进入循环条件判断 (i < 100) .
(3). 根据循环条件判断结果
如果为true,执行循环体。
如果为false,退出循环体,步骤(4)、(5)均不执行 .
(4). 执行迭代部分,改变循环变量值 (i ++)
(5). 依次重复步骤(2)、(3)、(4),直到退出 for 循环结构
3.省略表达式
(1). 省略"表达式 1",例如:
[java] view plain copy print?
for( ; i < 10; i++);
这个for循环虽然省略了"表达式 1",但其后的";"号没有省略。我们在实际编程中,如果出现"表达式 1"省略的情况,需要在 for 语句前给循环变量赋值。因此,可将上面的语句修改为:
[java] view plain copy print?
int i = 0;
for( ; i < 10; i++);
(2). 省略"表达式 2",即不判断循环条件,循环将无终止运行,也就形成了"死循环",比如下面的for 语句:
[java] view plain copy print?
for(int i = 0; ; i++);
在编程过程中要避免"死循环"的出现,所以对上面的语句可以做如下修改:一种方法是添加"表达式 2",另一种方法是在循环体中使用 break 强制跳出循环。
(3). 省略 "表达式 3",即不改变循环变量的值,也会出现"死循环",比如下面的语句:
for(int i = 0; i < 10; );
这里省略了 "表达式 3",变量 i 的值始终未 0,因此循环条件永远成立,程序就会出现"死循环",在这种情况下,我们可以再循环体中改变 i 的值,语句如下:
[java] view plain copy print?
for(int i = 0; i < 10; )
{
i++;
}
这样就能使循环正常结束,不会出现"死循环"
(4). 三个表达式都省略,即如下语句:
[java] view plain copy print?
for( ; ; );
上面这个语句在语法上没有错误,但逻辑上市错误的,我们可以参考上面三种情况的描述进行修改。
在实际开发中,为了提高代码的可读性,尽量不要省略各个表达式,如果需要省略,可以考虑是否改用while或 do-while 循环。
4. 跳转语句
Java 支持三种形式的跳转:break (停止)、continue(继续) 和 return (返回)。
1. break 语句
在 switch 结构中,break 语句用于终止 switch 语句中的某个分支,使程序跳到 switch 语句块以外的下一条语句
在循环结构中,break语句用于用于终止某个循环、使程序跳到循环块外的下一条语句。在循环中位于break后的语句将不再执行,循环也停止执行。
break 语句不仅可以用在 for循环中,也可以用在 while 和 do-while 循环中。
break 语句通常与 if 条件语句一起使用。
2. continue 语句
continue 语句用于,在某次循环中,我们不想执行完循环体中所有的语句,就像跳出次循环,开始执行下一次循环
continue 可以用于 for 循环,也可以用于 while 和 do-while 循环。 在 for 循环中, continue 使程序先跳转到迭代部分,然后判断循环条件。如果为 true,继续下一次循环;否则终止循环。在while循环中,continue执行完毕后,程序将直接判断循环条件。continue 语句只能用在循环结构中。
3.continue 和 break 语句的区别
在循环结构中:
(1). break 语句是终止某个循环,程序跳转到循环块外的下一条语句。
(2). continue 语句是跳出本次循环,进入下一次循环。
5. 循环结构
Java 提供的最主要的三种循环结构: while 、do-while 、for 循环
5对比:
1. 语法不同
while 循环语句
while(<条件>)
{
//循环体
}
// do-while循环语句
do
{
//循环体
}while(<条件>);
// for循环语句
for(初始化; 条件; 迭代)
{
//循环体
}
2. 执行顺序不同
(1). while循环: 先进行条件判断、再执行循环体。如果条件不成立,退出循环。
(2). do-while循环:先执行循环体,再进行条件判断,循环体至少执行一次。
(3). for 循环:先执行初始化部分,再进行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,跳出循环。
3. 适用情况不同
在解决问题时,对于循环次数确定的情况,通常选用 for 循环。对于循环次数不确定的情况,通常选用 while 和 do-while 循环。 1. break 语句是终止某个循环,程序跳转到循环块外的下一条语句。
2. continue 语句是跳出本次循环,进入下一次循环。