首先我们来看一个例子:
如果让你用代码输出一句“二师兄长的真帅!”,你会写
System.out.println("二师兄长的真帅!");
那么问题来了,我觉得这话听着特舒服,你再给我输出100遍!难道我们还要把这句话复制100遍吗?那要是让你输出一千遍呢?这时候我们就会想,如果有一种方法可以就让它重复执行一百或者一千遍是不是就简单了。顺序结构的程序语句只能被执行一次,如果您想要同样的操作执行多次,就需要使用循环结构。
循环定义: 重复执行某一段相同或者相似的代码。
一般来说,一个循环要包括循环条件,循环变量和循环体
循环条件:判断循环是否执行的条件,true则执行,false则不执行
循环变量:都是自己定义,用来控制循环条件
循环体: 循环执行的主体部分如果循环条件一直为true,则会进入死循环(无限循环)
while(boolean表达式){
循环体;
}
一般在碰到 当….时,做….事 的需求时用while循环
先判断boolean表达式的值:
a)若为true,则执行循环体,然后再判断条件,直到条件为false为止
b)若为false,则不执行循环,循环直接结束
编程依次输出正整数10~14
int x = 10;
while( x < 15 ) {
System.out.println("x的值是:"+x );
x++;
}
结果如下:
x的值是:10
x的值是:11
x的值是:12
x的值是:13
x的值是:14
do{
循环体;
}while(boolean表达式);
一般在碰到 做…..直到….时 的需求时用while循环
先执行一遍循环体,然后判断循环条件(boolean表达式):
a)若为true,则执行循环体,然后再判断条件,直到条件为false为止
b)若为false,则不再执行循环,循环直接结束
编程依次输出正整数10~14
int x = 10;
do{
System.out.println("x的值是:"+x );
x++;
}while(x<15);
结果如下:
x的值是:10
x的值是:11
x的值是:12
x的值是:13
x的值是:14
for(表达式1;表达式2;表达式3){
循环体;
}
for循环执行的次数是在执行前就确定的,所以它用作固定次数的循环,是最常用的一种循环结构
表达式1:用来作为循环变量的声明以及初始化
表达式2:作为循环条件(一个boolean表达式)
表达式3:作为循环变量的改变
先执行表达式1(表达式1只执行一次),然后判断循环条件(表达式2)
a)若为true,则执行循环体,然后执行表达式3,再判断循环条件,直到为条件为false为止
b)若为false,则不执行循环,循环直接结束
编程依次输出正整数10~14
for(int x=10;x<15;x++){
System.out.println("x的值是:"+x );
}
结果如下:
x的值是:10
x的值是:11
x的值是:12
x的值是:13
x的值是:14
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
在循环里: 跳出当前循环,使这一个循环结束
for(int x=10;x<15;x++){
if(x==12){
System.out.println("碰到break了!");
break;
}
System.out.println("x的值是:"+x );
}
结果如下:
x的值是:10
x的值是:11
碰到break了!
直接跳过这一次循环,进行下一次循环(跟break不一样,循环并没有结束)
代码案例:
for(int x=10;x<15;x++){
if(x==12){
System.out.println("碰到continue了!");
continue;
}
System.out.println("x的值是:"+x );
}
结果如下:
x的值是:10
x的值是:11
碰到continue了!
x的值是:13
x的值是:14
在 for 循环中,continue 语句使程序立即跳转表达式3。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
我们一般都会用到循环的嵌套,而且都是for循环的嵌套。但是在实际应用中基本上只能碰到双层的嵌套,如果你写到了三层及以上的嵌套,那么你首先要考虑一下代码的正确性和实用性了。
我们来看两个例题。
1)要求:打印5*5的“+”图形,每次输出一个“+”符号
+++++
+++++
+++++
+++++
+++++
首先我们先循环输出一行“+”,从要求可以看出来,第一行我们循环了5次,每次输出一个“+”,代码如下:
for(int i=0;i<5;i++){//这个循环次数为5次
System.out.print("+");//不换行输出"+"
}
结果如下:
+++++
然后只要再把这一行“+”循环输出5遍就行了,每次循环的时候换一行,代码如下:
for(int j=0;j<5;j++){//外层循环次数为5次
for(int i=0;i<5;i++){//这个循环次数为5次
System.out.print("+");//不换行输出"+"
}
System.out.println();//不输出东西,只做换行使用
}
上述代码,外层循环循环一次,内层都要循环5次,然后换一行,所以一共输出5*5=25次”+”
2)打印九九乘法表
代码如下:
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
外层 for 循环:代表行数。定一个整型变量 i, 它的初始值是 1;判断 i 是否小于等于 9;如果成立, i 就自增 1。
内层 for 循环:代表列数。定一个整型变量 j, 它的初始值是 1;判断 j 是否小于等于 i;如果成立, j 就自增 1。