计算机除了擅长判断外,更多的时候会执行一些循环语句,计算机对这些重复的循环语句的执行很是擅长,java提供了三种基本的循环语句,下面一一详细介绍:java
1、while循环语句测试
while循环语句,它的条件判断表达式只有一个,经过判断条件为true时执行循环体代码块,为false时退出循环。其语法格式以下:spa
while (判断条件)code
{blog
// 语句作用域
}for循环
循环开始前,程序会先执行判断条件里面的代码,只要返回true就会进入后面的语句块,和if判断同样,若是后面只有一个语句那么左右大括号能够省略,可是为了提升程序的可读性,创建仍是写上大括号。class
下面咱们具几个简单的示例说明while的使用,好比咱们要输出十句hello world语句。固然咱们不用写10局输出语句,能够参考下面的代码:变量
int i=0;//初始化 i为0 while(i<10){//进入循环前先判断条件是否为true System.out.println("hello world!"); i++;//每一次循环结束前i自增1 } System.out.println("while循环结束了。i="+i);
使用循环语句咱们能够轻松的实现输出10句hello world的程序,注意上面的代码,在循环开始前咱们就定义了一个变量i用户控制循环的次数,初始化为0,每一次进入while循环体以前,都会先判断i是否小于10,若是小于10才会进入循环体,在循环体里,咱们让i自增1,也就是说每输出已经hello world后,i都会自增1,而后再次回到while循环的判断条件中,再次判断,一直i自增到10的时候,该条件就会返回为false,退出while循环。循环
2、do-while语句
do-while语句和while循环很是相似,都是while后面的条件判断为true时才会继续循环,因此不少时候二者实现的效果都是同样的,不过,也是有区别的,其区别在于判断表达式执行判断的时间点不同,do-while语句是先进行执行一遍语句后再执行的判断,这样至少保证循环体代码块执行了一遍,而while 语句是先判断再执行的,若是条件表达式一开始就不成立的话那么循环体代码块就一次也不会被执行。所以有时使用do-while语句是逻辑上必须的。其具体的语法格式以下:
do {
// 语句
}while (判断条件);
上面的格式须要注意的是后面别忘了要添加一个分号(;),咱们也但是使用do-while语句实现上面的输出十句hello world语句的程序,代码以下:
int i=0;//初始化 i为0 do{ System.out.println("hello world"); i++; }while(i<10); System.out.println("while循环结束了。i="+i );
运行结果与使用while循环同样,咱们再尝试一下把i改为20,其代码以下:
int i=20;//初始化 i为0 do{ System.out.println("hello world"); i++; }while(i<10); System.out.println("while循环结束了。i="+i );
程序输出了一句hello world后,i自增后就是21了,这个时候条件判断就已是false,因此程序最后也只输出了一句hello world就退出该循环了。咱们也可使用while循环测试一下,代码以下:
int i=20;//初始化 i为0 while(i<10){//进入循环前先判断条件是否为true System.out.println("hello world!"); i++;//每一次循环结束前i自增1 } System.out.println("while循环结束了。i="+i);
一句hello world语句都没有输出,由于以开始条件就已是false了,因此循环体一次也没有进入过。这样你能明白while循环和do-while循环之间的使用上的区别了吧。
3、for循环语句
在while循环和do-while循环中咱们都使用整型变量i来控制循环次数,每一次执行循环前都须要判断是否知足循环条件,在循环体重都须要让变量i自增,像这种相对明确循环次数,而且频繁使用一个变量来控制循环,java提供了更加简洁,结构根据清晰的循环,就是下面for循环语句,标准的for循环语句分为三段表达式。其具体格式以下:
for(初始化;测试; 增量){
操做语句;
}
咱们先看看示例,再详细讲解for的格式,仍是实现上面所说的输出10句hello world语句。
for(int i=0;i<10;i++){ System.out.println("hello world!"); } System.out.println("循环结束了。");
在for后面的小括号同样要包含三句语句,每个语句的内容不是必须的,可是分号(;)是不能够缺乏的。三句语句中第一句是一个表达式,用做声明并初始化,只会执行一次,初始化的一般是一个变量,这个变量做用域循环体内部。固然同时初始化多个变量也是语法所容许的,只是一般没这种必要,好比:
for(int i=0,j=20;i<50;i++){
…
}
第二句负责在每次循环执行以前进行判断,判断返回一个boolean值,根据这个boolean值决定是否继续执行循环,true继续执行,false终止循环。
第三句能够是任意java表达式,而最多见的用法是进行一个递增或者递减的运算,运算的值用于第二个表达式中进行循环控制判断。
每一句都不是必须的,因此最简单的for循环语句就是
for(;;){
...
}
就算没有语句也要写上分号。
for循环控制的{…}大括号内被称为循环体,这段语句块是每次循环时都执行的代码逻辑。下面咱们再具几个常见的例子说明如下for循环的应用。好比咱们要计算1至100累加的和是多少,当实现这个功能有不少方法,这里咱们使用for循环实现它,代码以下:
int sum=0; for(int i=1;i<=100;i++){ sum+=i;//实现累加 } System.out.println("sum="+sum);
咱们一开始定义了一个变量sum并初始化为0,用于记录运算的结果。sum的做用域再也不for循环体里,而后咱们使用for循环开始求和,首先咱们先写for循环的控制头,在第一句中咱们初始化一个整型变量i,该i的做用域仅在循环里使用
int i=0;
而后咱们就写循环的条件判断了i必需要小于等100,才能继续进入循环体。
i<=100;
若是条件知足,程序其实就会进入循环体内,执行累加的功能。
sum+=i;//实现累加
循环体执行完毕才会进入循环控制头的第三句代码,这里就是让i自增1。
i++;
程序就是这样不断的循环下去,一至到条件判断为false为止。最后就会退出该循环并输出最后的结果:sum=5050