循环结构
一,在某些条件满足的情况下,反复执行特定代码的功能。
二,循环语句分类:
- for循环
- while循环
- do-while循环
三,循环语句的四个组成部分:①初始化部分;②循环条件部分(布尔类型);③循环体部分,④迭代部分;
四,for循环的结构及其练习:
for(①;②;④){
③}
执行过程:①---②---③---④---②---③---...---②
1 1 import java.util.Scanner; 2 3 /* 4 输入两个整数M和N,求其最大公约数和最小公倍数; 5 break的练习; 6 */ 7 public class BreakTest { 8 public static void main(String args[]) { 9 Scanner scan =new Scanner(System.in); 10 System.out.println("请输入M的值:"); 11 int m=scan.nextInt(); 12 System.out.println("请输入N的值:"); 13 int n=scan.nextInt(); 14 15 16 //求最大公约数 17 //获取两个值中的最小值 18 int min=(m<=n)?m:n; 19 for(int i=min;i>=1;i--) { 20 if(m%i==0 && n%i==0){ 21 System.out.println(m+"和"+n+"的最大公约数为"+i); 22 break;} 23 } 24 //求最小公倍数 25 //获取两个数中的最大值 26 int max=(m>=n)?m:n; 27 for(int i=max;i<m*n;i++) { 28 if(i%m==0&&i%n==0) { 29 System.out.println(m+"和"+n+"的最小公倍数为"+i); 30 break; 31 32 } 33 34 } 35 } 36 37 }
公倍数一定大于两数中较大的值,小于两数之积,因为求的是最小公倍数,所以从小到大设范围(i++),执行中,第一个满足要求的i即为最小公倍数,用break截断;
公约数一定大于等于1,小于等于两数中最小的数,因为求的是最大公约数,所以从大到小设范围(i--),执行中,第一个满足要求的i即为最大公约数,break;
五,while循环的结构
①
while(②){
③;
④;
}
执行过程:①---②---③---④---②---③---...---②
说明:注意别忘记写④迭代条件,一旦丢了,会导致出现死循环的问题;
for循环和while循环是可以相互转换的。
唯一的小区别是:初始化条件部分作用范围不同。出了for就不能再调用,但出了while还可以调用。
六,do-while循环结构
①
do{
③;
④;
}while(②)
执行过程:①---③---④---②---③----④......---②
七,三种循环实现 :输出100以内的偶数,及其偶数的总和与个数;
1 //遍历100以内的偶数,并计算所有偶数的和及偶数的个数 2 //for循环 3 public class BreakTest { 4 public static void main(String args[]) { 5 int sum=0,num=0; 6 for(int i=1;i<=100;i++) { 7 if(i%2==0) { 8 System.out.println(i); 9 sum+=i; 10 num+=1; 11 12 } 13 14 } 15 16 System.out.println("偶数的和为:"+sum); 17 System.out.println("偶数的个数为:"+num); 18 } 19 20 } 21 //while循环 22 public class BreakTest { 23 public static void main(String args[]) { 24 int sum=0,num=0;int i=1; 25 while(i<=100) { 26 if(i%2==0) { 27 System.out.println(i); 28 sum+=i; 29 num+=1; 30 31 } 32 i++; 33 } 34 35 System.out.println("偶数的和为:"+sum); 36 System.out.println("偶数的个数为:"+num); 37 } 38 39 } 40 //do-while循环 41 public class BreakTest { 42 public static void main(String args[]) { 43 int sum=0;//记录总和 44 int num=0;//记录个数 45 int i=1; 46 do { 47 if(i%2==0) { 48 System.out.println(i); 49 sum+=i; 50 num+=1; 51 } 52 i++; 53 }while(i<=100); 54 55 System.out.println("偶数的和为:"+sum); 56 System.out.println("偶数的个数为:"+num); 57 } 58 59 } 60
不在循环条件部分限制次数的结构(有时不确定循环次数):for(;;)或while(true)
结束循环有几种方式:①循环条件部分返回false;
②在循环体中,执行break;