济南Java培训
达内济南山大路中心

17156168575

热门课程

Java的循环控制语句

  • 时间:2016-10-25
  • 发布:济南达内
  • 来源:互联网

循环语句使语句或块的执行得以重复进行。Java 编程语言支持三种循环构造类型:for,while 和do循环。for和while循环是在执行循环体之前测试循环条件,而do循环是在执行完循环体之后测试循环条件。这就意味着for和 while循环可能连一次循环体都未执行,而do循环将至少执行一次循环体。

for 循环

for 循环的句法是:

for (初值表达式; boolean 测试表达式; 改变量表达式/步长){

语句或块

其执行顺序如下:

1、首先运行初值表达式。

2、然后计算测试表达式,如果表达式为true,执行语句或块;如果表达式为false,退出for循环。

3、最后执行步长。

示例:

for (int i = 0; i < 10; i++) {

System.out.println("Java快车");

}

System.out.println("Finally!");

注意:for循环的执行顺序:先执行初始值表达式int i = 0;再执行一遍测试表达式i <10; 如果测试表达式返回true,则执行循环体,就是system的输出语句,如果测试表达式返回false,则整个循环结束,然后执行增量表达式。我们称这是第一次循环结束了,初始值表达式只执行一次,第二次循环从测试表达式开始,方法和步骤和第一次一样。循环就这样一次一次地进行,直到测试表达式返回false,整个循环就结束了,这个for语句的生命周期就结束了。

for 语句里面的 3 个部分都可以省略,但是我们不建议这么做。

示例如下:

示例 1:3个部分全部省略,就是一个无限循环。

public class Test {

public static void main(String[] args) {

for (;;) {

System.out.println("Yesky");

}

}

}

示例 2:省略测试表达式和增量表达式部分,就是一个无限循环。

public class Test {

public static void main(String[] args) {

for (int i = 0;;) {

System.out.println("Yesky" + i);

}

}

}

示例 3:可以省略增量表达式部分,就是一个无限循环。

public class Test {

public static void main(String[] args) {

for (int i = 0; i < 3;) {

System.out.println("Yesky" + i);

}

}

}

示例 4:可以省略增量表达式部分,就是一个无限循环。

public class Test {

public static void main(String[] args) {

for (int i = 0;; i++) {

System.out.println("Yesky" + i);

}

}

}

示例 4:在for语句的括号里的表达式省略后,仍然能完成全部功能。

public class Test {

public static void main(String[] args) {

int i = 0;

for (;; ) {

if(i==10){

//如果条件成立,使用break跳出循环。

break;

}

System.out.println("Yesky" + i);

i++;

}

}

}

for 循环的组合很多,要灵活运行,避免死循环。

while 循环

while 循环的句法是:

while (布尔表达式) {

语句或块

说明:当布尔表达式为true时,执行语句或块,否则跳出while循环。

示例:

int i = 0;

while (i < 10) {

System.out.println("Yesky");

i++;

}

System.out.println("Finally!");

请确认循环控制变量在循环体被开始执行之前已被正确初始化,并确认循环控制变量是真时循环体才开始执行。控制变量必须被正确更新以防止死循环。

do 循环

do 循环的句法是:

do {

语句或块;

}while (测试值表达式);

说明:

先执行语句或块,然后再判断布尔表达式。与while语句不同,当布尔表达式一次都不为true时,while语句一开始判断就跳出循环,一次都不执行语句或块,而在do语句中则要执行一次。

示例:

int i = 0;

do {

System.out.println("javakc");

i++;

} while (i < 10);

System.out.println("Finally!");

像while循环一样,请确认循环控制变量在循环体中被正确初始化和测试并被适时更新。作为一种编程惯例,for 循环一般用在那种循环次数事先可确定的情况,而 while 和 do用在那种循环次数事先不可确定的情况。

特殊循环流程控制

下列语句可被用在更深层次的控制循环语句中:

 break [标注];

 continue[标注];

 label: 语句;//这里必须是任意的合法的语句

break 语句被用来从 switch 语句、循环语句和预先给定了 label 的块中退出,跳出离break 最近的循环。

continue 语句被用来略过并跳到循环体的结尾,终止本次循环,继续下一次循环。

label 可标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合语句。当嵌套在几层循环中想退出循环时,正常的break只退出一重循环,你可以用标号标出你想退出哪一个语句。它类似以前被人诟病的“goto”语句,我们应该尽量避免使用。

例 1:break 的使用

public class Test {

public static void main(String[] args) {

for (int i = 0; i < 10; i++) {

if (i == 5) {

break;

}

System.out.println("i==" + i);

}

}

}

运行的结果:i==0 一直到 i==4

因为当 i==5 的时候,执行 break,跳出 for 循环。

例 2:continue 的使用

public class Test {

public static void main(String[] args) {

for (int i = 0; i < 5; i++) {

if (i == 3) {

continue;

}

System.out.println("i==" + i);

}

}

}

运行的结果:i==0 一直到 i==4,就是不包括 i==3。因为当 i==3 的时候,执行

continue,终止本次循环,继续下一次循环。

例 3:label 的使用

public class Test {

public static void main(String[] args) {

L: for (int i = 0; i < 5; i++) {

if (i == 3) {

break L;

}

System.out.println("i==" + i);

}

}

}

运行的结果是:i==0 一直到 i==2。在这里看不出执行效果,如果是两层嵌套的循环,使用label就可以跳出外层的循环了。

例 4:label 的使用

public class Test {

public static void main(String[] args) {

for (int i = 0; i < 5; i++) {

L: if (i == 3) {

break L;

}

System.out.println("i==" + i);

}

}

}

运行的结果是:i==0 一直到 i==4

例 5:label 的使用

public class Test {

public static void main(String[] args) {

L: for (int i = 0; i < 5; i++) {

if (i == 3) {

continue L;

}

System.out.println("i==" + i);

}

}

}

运行的结果是:i==0 i==1 i==2 i==4

上一篇:Java类的基本内容
下一篇:Java的分支控制语句

达内携手惠普 英特尔,共同打造引领数字化职业教育解决方案

第四届“达内发现杯”大学生互联网软件设计大赛圆满落幕

795万高校毕业生创历史新高,2017届毕业生就业近况几何?

写给Python程序员:如何利用Rust取代C/C ++?

选择城市和中心
贵州省

广西省

海南省

台湾