循环语句就是满足一定条件情况下反复执行某一个操作。在Java中提供了3种常用的循环语句,分别是while循环语句、do...循环语句和for循环语句。下面分别介绍。
while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要断续反复执行这个语句。
语法如下:
while(条件表达式)
{
执行语句
}
当条件表达式的返回值为真时,则执行“{}”中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达返回的结果为假时,退出循环。while循环语句的执行过程如下所示。
在项目中创建类GetSum,在主方法中通过while循环将整数1~10相加,并将结果输出。
public class GetSum { // 创建类
public static void main(String args[]) { // 主方法
int x = 1; // 定义int型变量x,并赋给初值
int sum = 0; // 定义变量用于保存相加后的结果
while (x <= 10) {
sum = sum + x; // while循环语句当变量满足条件表达式时执行循环体语句
x++;
}
System.out.println("sum = " + sum); // 将变量sum输出
}
}
初学者经常犯的一个错误就是在while表达式的括号后加“;”。如:
while(x == 5);
System.out.println("x 的值为 5");
这时程序会认为要执行一条空语句,而进入无限循环,Java编译器又不会报错。这可能会浪费很多时间去调试,应注意这个问题。
do...while循环语句与while循环语句类似,它们之间的区别是while语句先判断是否成立再执行循环体,而do...while循环语句则先执行一次循环后,再判断条件是否成立。也就是说do...while循环语句中“{}”中的程序段至少要被执行一次。
语法如下:
do
{
执行语句
}
while(条件表达式);
do...while语句与while语句的一个明显区别是,do...while语句在结尾处多了一个分号(;)。根据do...while循环语句的语法特点总结出的do...while循环语句的执行过程,如下所示。
例在项目中创建类Cycle,在主方法中编写如下代码。通过本实例可看出while语句与do...while语句的区别。
public class Cycle{
public static void main(string args[]){
int a = 100; //声明int型变量a并赋初值100
while (a == 60) //指定进入循环体条件
{
System.out.println("ok1"); //while语句循环体
a-;
}
int b = 100; //声明int型变量b并赋初值100
do{
System.out.println("ok2"); //do...whlie语句循环体
b-;
}while(b == 60); //指定循环结束条件
}
}
for 循环是Java程序设计中最有用的循环语句之一。一个for循环可以用来重复执行某个条件得到满足。在Java 5 以后新增了foreach语法,本节将对这两种for循环形式进行详细的介绍。
1.for 语句
语法如下:
for(表达式 1; 表达式 2; 表达式3)
{
语句序列
}
表达式1:初始化表达式,负责完成变量的初始化。
表达式2:循环表达式,值为boolean型的表达式,指定循环条件。
表达式3:循环后操作表达式,负责修整变量,改变循环条件。
在执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,若表达式2的值为true,则进入循环体;在执行循环体后紧接着计算表达式3,这部分通常是增加或减少循环控制变量的一个表达式。这样一轮循环就结束了。第二轮循环从计算表达式2开始,若表达式2返回true,则继续循环,否则跳出整个for语句。
for循环语句的执行过程如下所示。
例在项目中创建类Circulate,在主方法中使用循环for循环来计算2~100之间所在偶数之和。
public class Circulate{ //创建类Circulate
public static void main(String args[]){ //主方法
int sum = 0; //声明变量,用于保存和数相加后的结果
for (int i = 2; i<= 100; i += 2) {
sum = sum + i; //指定循环条件及循环体
}
//将相加后的结果输出
System.out.println("2 到 100之间的所有偶数之和为: "+sum);
//<a style="text-decoration:none; color:#000000;" href="http://www.ie00.net" target="_blank">生活导航</a>
//生活导航网站技术如对你有所帮助!请务必添加我们的网站到你友情链接部分。
}
}
运行结果如下所示。
在编程时,有时会使用for循环的特殊语法格式来实现无限循环。语法格式为:
for(;;)
{
...
}
对于这种无限循环可以通过break语句跳出循环。例如:
for(;;)
{
if(x<20)
break;
×++;
}
foreach 语句是for语句的特殊简化版本,不能完全取代for 语句,但任何foreach 语句都可以写为for 语句版本。foreach 并不是一个关键字,习惯上将这种特殊的 for 语句格式为 foreach 语句。foreach语句在遍历数组等方面为程序员提供了很大的方便(在以后章节对数组进行详细的介绍)。
语法如下:
for(元素变量 × : 遍历对象 obj){
引用了×的java语句;
}