IT兄弟连 Java语法教程 流程控制语句 循环结构语句1
Posted itxdl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IT兄弟连 Java语法教程 流程控制语句 循环结构语句1相关的知识,希望对你有一定的参考价值。
循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环。循环语句可能包含如下4个部分:
1.初始化语句:一个或多条语句,这些语句用于完成一些初始化工作,初始化语句在循环开始之前执行。
2.循环条件:这是一个boolean表达式,这个表达式能决定是否执行循环体。
3.循环体:这个部分是循环的主体,如果循环条件允许,这个代码块将被重复执行。如果这个代码块只有一行语句,则这个代码块的花括号是可以省略的。
4.迭代语句:这个部分在一次循环体执行结束后,对循环条件求值之前执行,通常用于控制循环条件中的变量,使得循环在合适的时候结束。
上面4个部分只是一般性的分类,并不是每个循环中都非常清晰地分出了这个4个部分。
1 for循环
for循环是相对简洁的循环语句,大部分情况下,for循环可以替代while循环、do-while循环。for循环的完整语法格式如下:
for(初始化语句;循环条件;迭代语句)
循环体;
程序执行for循环时,先执行循环的初始化语句,初始化语句只在循环开始之前执行一次。每次执行循环体之前,先计算循环条件的值,如果循环条件返回true,则执行循环体,循环体执行结束后执行循环迭代语句。因此,对于for循环而言,循环条件总比循环体要多执行一次,因为最后一次执行循环条件返回false,将不再执行循环体。
值得注意的是,for循环的循环迭代语句没有与循环体放在一起,因此即使在执行循环体时遇到continue局域结束本次循环,循环迭代语句也一样会得到执行。
如果循环体只有一行语句,那么循环体的花括号可以省略:
for(初始化语句;循环条件;迭代语句) 循环体;
例:下面的程序演示了for循环的执行流程:
public class ForDemo
public static void main(String[] args)
for(int i = 0;i < 10; i++)
System.out.println("i的值为:" + i);
编译并运行这个程序,控制台将显示如图10所示的信息。
图10 ForDemo运行结果
在上面的循环语句中,for循环的初始化语句只有一个,循环条件也只是一个简单的boolean表达式,实际上,for循环允许同时制定多个初始化语句,循环条件也可以是一个包含逻辑运算符的表达式,如下所示:
public class ForDemo
public static void main(String[] args)
for(int b = 0,s = 0,p = 0;b < 10 && s< 4 && p < 10;p++)
System.out.println(b++);
System.out.println(++s + p);
上面的代码中初始化变量有三个,但是只能有一个声明语句,因此如果需要在初始化表达式中声明多个变量,那么这些变量应该具有相同的数据类型。
另外,for循环还有一些有趣的变体,是通过不对循环的某些部分进行定义来实现的。在Java中,for循环的所有或部分初始化,条件或迭代部分都可以为空,如下所示:
public class ForDemo
public static void main(String[] args)
int i;
for(i = 0; i < 10;)
System.out.println("i的值为:" + i);
i++;
编译并运行这个程序,控制台将显示如如11所示的信息。
图11 修改后的ForDemo运行结果
这里,for循环没有迭代表达式,而把循环控制变量i的增加放在了循环体的内部。这就意味着每次循环时都要测试i是否等于10,除此之外没有进一步的动作。当然,因为i的增加在循环体内部,所以循环还可以正常进行。
下面在看for循环的另一个变体,在下面的例子中,for循环的初始化部分也被移出了for循环:
public class ForDemo
public static void main(String[] args)
int i = 0;
for( ; i < 10; )
System.out.println("i的值为:" + i);
i++;
重新编译并运行这个程序,控制台将显示如图12所示的信息。
在此版本中,在循环开始前就把i初始化了,没有把它作为for循环的一部分。一般情况下都是把循环控制变量的初始化放在for循环内部,但是当初始值是通过某个复杂过程得到的,而又不方便把这一过程放在for语句中时,可以把初始化放在循环之外。
图12 再次修改后的ForDemo运行结果
for循环还有另外一种变体就是将循环的条件表达式设为空,可以生成无限循环,即永远不会停止的循环。例如下面的代码就是Java程序创建无限循环的常用方法:
for( ; ; )
//...
该循环将永远运行下去,尽管有许多程序设计任务,如操作系统命令处理器,需要无限循环,但是多数“无限循环”都是具有特殊终止条件的循环。
在Java中,for循环(或其他循环)可以没有循环体,因为空语句在语法上是有效的。没有循环体的循环十分有用。例如,下面的程序就是用了没有循环体的循环,计算从1至5的数之和:
public class ForDemo2
public static void main(String[] args)
int sum = 0;
for(int i = 1; i <= 5; sum += i++);
System.out.println("1至5的和为:" + n);
编译并运行这个程序,控制台将显示如图13所示的信息。
注意,整个求和过程是在for语句中完成的,不需要循环体。这里要特别注意迭代表达式:
sum += i++;
图13 ForDemo2运行结果
以上是关于IT兄弟连 Java语法教程 流程控制语句 循环结构语句1的主要内容,如果未能解决你的问题,请参考以下文章