循环结构
1、什么是循环结构:循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
2、为什么要使用循环结构:有些问题需要进行多次重复,为了简化编程结构,就要引入根据条件决定是否重复执行一条或多条命令的控制结构,叫循环结构。循环结构最大优点是简化编程的工作量。引入循环结构又非常适合计算机处理。因为计算机的运算非常快,执行千万次的运算只是一瞬间的事情,更重要的是还能保证每次结果都正确。
一、while循环结构
while是一种条件判断的循环循环结构,直到判断条件为false才终止循环。
语法结构1:
while(循环条件){
循环体
}
语法结构2:
do{
循环体
}while(循环条件)
语法结构1:while循环
public static void main(String[] args) {
int a = 6;
while(a<10){
System.out.println("a="+a);
a++;
}
}
输出结果
a=6
a=7
a=8
a=9
语法结构2:do while循环
public static void main(String[] args) {
int a = 6;
do{
System.out.println("a="+a);
a++;
}while(a<10);
}
输出结果
a=6
a=7
a=8
a=9
do while循环与while循环的区别:
do while循环循环体至少执行一次而while循环根据条件判断循环体可能不执行。
eg:
语法结构1:while循环
public static void main(String[] args) {
int a = 10;
while(a<10){
System.out.println("a="+a);
a++;
}
System.out.println("最终值a="+a);
}
输出结果
最终值a=10
语法结构2:do while循环
public static void main(String[] args) {
int a = 10;
do{
System.out.println("a="+a);
a++;
}while(a<10);
System.out.println("最总值a="+a);
}
输出结果
a=10
最总值a=11
二、for循环结构
为什么使用for循环:尽管所有的循环都可以使用while来实现,单有些循环结构使用for循环可以是结构更加清晰、实现起来也更加简单。
for循环语法结构:
for(单次表达式;条件表达式;末尾循环体){
中间循环体;
}
求1到10的整数之和:
public static void main(String[] args) {
int a = 0;
for(int i=1;i<=10;i++){
a=a+i;
System.out.println("a="+a+";i="+i);
}
System.out.println("a="+a);
}
输出结果:
a=1;i=1
a=3;i=2
a=6;i=3
a=10;i=4
a=15;i=5
a=21;i=6
a=28;i=7
a=36;i=8
a=45;i=9
a=55;i=10
a=55
for循环结构的嵌套使用
1、内外循环相互独立
public static void main(String[] args) {
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
System.out.print("*");
}
System.out.println("");
}
}
输出结果:
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
2、内外循环关联使用
public static void main(String[] args) {
for(int i=1;i<=10;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println("");
}
}
输出结果:
*
**
***
****
*****
******
*******
********
*********
**********
3、for循环实现99乘法表
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
}
输出结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
三、跳转语句
1、break语句
break语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是while循环还是for循环,只要执行break语句,就会直接结束当前正在执行的循环体。
public static void main(String[] args) {
int a = 0;
for(int i=1;i<=10;i++){
a=a+i;
System.out.println("a="+a+";i="+i);
break;
}
System.out.println("a="+a);
}
输出结果:
a=1;i=1
a=1
循环只执行了1次遇到break直接结束循环。
break也可以设置锚点,直接将循环终止到锚点的位置。
不设置锚点:
public static void main(String[] args) {
for(int i=1;i<=10;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
break;
}
System.out.println("");
}
}
输出结果:
*
*
*
*
*
*
*
*
*
*
设置锚点:
public static void main(String[] args) {
b:for(int i=1;i<=10;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
break b;
}
System.out.println("");
}
}
输出结果:
*
2、continue语句
表示结束本次循环,进行下一次循环,而不终止整个循环的执行
当 i=5 时不参与累加:
public static void main(String[] args) {
int a = 0;
for(int i=1;i<=10;i++){
if(i==5){
continue;
}
a=a+i;
System.out.println("a="+a+";i="+i);
}
System.out.println("a="+a);
}
输出结果:
a=1;i=1
a=3;i=2
a=6;i=3
a=10;i=4
a=16;i=6
a=23;i=7
a=31;i=8
a=40;i=9
a=50;i=10
a=50