上节课大家学会了如何使用分支结构。但是呢?这还不能满足编程的需要。
试想,如果便利店打广告依靠人力重复叫喊,那半小时就撑不住了。所以,大家就使用录音器,重复播放广告。
编程也是如此。如果重复的代码需要写很多遍,那岂不是很麻烦?
比如说,打印1-100的数字,那么每次都需要让x=x+1;总共需要写100次。
那么,有没有解决方案呢?java当然有。那就是循环结构。
今天的内容是:循环结构
1、while循环结构
2、do while循环结构
3、for循环结构
4、foreach循环结构
第一部分:while循环结构
while循环是java内置的一个循环结构。我们看看它如何定义和使用。
定义:
while(条件){
//代码
}
这个结构的原理是,如果while后的条件成立,那么一直执行循环结构里的代码;除非条件不成立;
示例:打印1-100的数字
int i = 0;
while(i<=100){//如果i<=100,则一直执行循环里的代码
System.out.println(i);
i++; //让i每次加1
}
第二部分:do while循环
do while循环是while循环的一个变种。我们看看如何定义和使用。
定义:
do{
//代码
}while(条件);
do while循环和while的区别是,先执行一遍代码,再执行while循环。注意,只是先执行一遍。
示例:
如果一个数字比10大且比50小,打印这个数字到50的值;否则,打印10-50的值。
那么,就需要先判断这个数组,如果不在范围内,让这个数字变为10.然后打印数字到50的值。
private void printToFifty( int x){
do{
if(x<10 | x>50){
x=10;
}
System.out.println(x);
x++;
}while(x<=50);
}
第三部分:for循环
上面的部分我们学习了while循环,他表示的意思是除非条件不成立。。否则一直执行。循环的次数是不知道的,通过条件来限定。
那么,如果我知道循环的次数,那么有没有其他的方法?
当然有,那就是for循环。
我们来看定义语法:
for(初始化;条件;更新){
//代码
}
初始化是一行为循环做准备的初始化语句,一般为循环因子的初始化。
条件是判断条件成立,则可以一直执行循环
更新呢,则是对循环的状态更新,一般为因子的步长更新。
是不是很迷茫,我们来看代码:输出从1-10的数字
for(int i = 0;i<10;i++){
System.out.println(i);
}
此处呢,初始化语句是int i =0;初始化了一个循环的因子,方便我们通过因子的增减来对循环的控制。
条件语句是i<10,限定了循环可以执行的条件。
更新语句呢是i++;每次执行完之后对因子+1,这样呢,配合条件语句,i最多只能增长10次,否则,就不能继续执行循环语句了。
是不是很棒呢?
我们再给大家介绍下for的具体执行步骤。
步骤1、执行初始化语句。执行步骤2
步骤2、执行条件语句,如果成立,执行循环,步骤3;否则,结束循环。
步骤3、执行代码
步骤4、执行更新语句
步骤5、重新执行步骤2
图例如下:
第四部分:foreach
foreach呢是for的增强版,jdk1.5之后的特性。foreach只是一种理解名称。
主要用在遍历数组和集合,方便我们更快的操作元素。
我们来看定义语法:
for(集合元素类型 遍历时元素的临时变量名称:目标集合){
//代码
}
我们用例子来介绍:
遍历数组 :
int arr[] = {1,2,3};
for(int x: arr){
//代码
}
其中int x 就代表数组当中的每一个元素,他是一个变量。
每一次循环都代表一个遍历的当前元素,从第一个元素到最后一个元素,直到集合被遍历完。
并且呢,一般是从头到尾,所以很方便遍历内容。
最后呢,我们复习一下循环,使用一个容易记住的例子:
while代表你女朋友让你说对不起,除非她说停,否则一直说。
for代表你女朋友让你说100次我爱你,一次不能多,一次不能少。
另外,循环是可以嵌套使用的。我们举个例子:
打印100遍A-Z的字母。那么需要我们循环打印a-z的每一个字母,然后再调用这个循环,打印一百遍。
代码如下:
for(int i=0;i<100;i++){//循环一百次
for(int j = 'A';j<'Z';j++){//循环打印每一个字母
System.out.print((char)j);
}
System.out.print("\n");//换行
}
以上,是我们今天的内容:
while
do while
for
foreach