在上篇文章中,我们和大家一起了解了Java中的流程控制语句并对顺序结构和分支结构都有了一定的了解,今天,让我们一起来认识一下Java中的循环结构吧!
五、循环结构(while、do...while、for)
在某些情况下,我们可能会希望一段代码被反复执行,在这时就需要使用循环语句来实现我们的目的了,首先我们来看一看while循环语句:
1)while语句
它的格式是这样的:
while(条件表达式){
循环体;
}
while语句看起来和if语句长得十分相似,实际上他们的使用方法也基本一致,只要条件表达式的结果为true,就执行{}中的内容。
区别就是if分支语句只执行一次,但while是循环语句,因此只要结果为true就一直循环不断的执行{}中的内容,因此我们将{}的这部分内容称为循环体。
上面我们提到循环语句只要条件表达式的结果为true,就会一直循环不断的执行{}中的内容,但多数情况我们并不想要这种结果,因此我们通常会使用一些手段让条件表达式在我们需要的时候变为false,以此来控制循环体执行的次数,下面来给大家举几个例子,方便大家理解:
//案例一:
while(true){
System.out.println("-------");
}
System.out.println("=======");
在案例一中,因为条件表达式的最终结果是true,因此while循环永远不会结束,最终会不断的输出-------,而后面的========将永远无法输出,这种情况我们一般将其称为死循环,那么该怎样避免死循环呢,我们再来看下面这个案例:
//案例二:完成五次"------"的输出
int i=0;//代表已经输出的次数
while(i<5){
System.out.println("------");
i++;
}
System.out.println("=======");
在案例二中,我们定义了一个int类型的变量i,代表着我们已经输出了几次,因为循环还没开始执行,所以我们已经输出的次数一定为0,因此我们将它的初值定义为0。
我们先忽略表达式,直接看循环体,因为i代表着我们已经输出了几次,随着循环体的不断执行,每输出一次------时,我们的i值也因为自增运算符的作用,进行了一次加1运算;
因此第一次输出后,i的值为1,第二次输出后,i的值为2......
现在我们来看条件表达式,第五次输出结束后,i的值自然为5,代表着我们已经完成了5次输出,那么5<5自然不成立,因此在我们的完成了5次输出后,条件表达式的值变为了false,循环正式结束,开始继续向下顺序执行=======的输出。
合理的使用循环语句能让程序事半功倍,下面再给大家举一个while的实际应用案例来加深大家的认识吧:
//案例三:判断10以内的偶数(包含10)
int i=0;//代表从0开始的自然数
while(i<=10){
if(i%2==0){
System.out.println(i+"是一个偶数");
}
i++;
}
在案例三中:我们的目标是判断10以内的偶数,默认从自然数0开始,因此我们将i的初值定义为0,代表第一个自然数0。
然后我们来看while的条件表达式:因为包含10,所以我们将表达式写为i<=10,这样当i等于11时,表达式的值为false,循环结束。
现在我们来看一看循环体,再循环体内,我们利用if条件语句来判断一下这个数字是否满足要求:
对于偶数的判断,我们可以直接让这个数字对2进行取余运算,如果余数为0,那么它必然能够被2整除,因此可以判断它一定是个偶数,那么我们就输出它,否则不进入分支,程序向下顺序执行,遇到i++语句,让i进行增加,来判断下一个数字,直到i加到11为止。
现在一个简单的while循环语句小案例就完成了,给大家留一个小练习:
试着使用两个int类型的变量sum和i搭配while循环,计算一下1到100的和,下篇文章将会为大家讲解。
今天的内容就到这里啦,如果存在哪些疑问或问题欢迎大家指出,我们下期再见~