JAVA 三种循环的总结

问题:使用循环几年了,被人问到有什么区别时,竟然有点语塞,温故一下大神的理解,整理一下。
总结:for、while和do while用任一循环能完成的功能,其他两个循环也可以完成,只是有时会复杂一点,像while或for循环向do while转换有时需要加一个判断(像倒三角的例子),因为do while最少要执行一次。互相转换时一定要需要注意数据的还原等问题,互相转换只是练习自己对各个循环的掌握情况。在正式使用时需要根据情况分析使用哪个比较方便。
例子:三种循环做9*9乘法表和打印倒三角形
  
 1 //for 循环写 9*9乘法表
 2   for(int x=1;x<10;x++){
 3     for(int y=1;y<=x;y++){
 4       System.out.print(y + "*" + x + "=" + x*y + " ");
 5     }
 6     System.out.println();
 7   }
 8  
 9  
10   //while 循环写 9*9乘法表
11   int i = 1;
12   int j = 1;
13   while(i<10){
14     j=1;
15     while(j<=i){
16       System.out.print(j + "*" + i + "=" + i*j + " ");
17       j++;
18     }
19     System.out.println();
20     i++;
21   }
22  
23  
24   //do while循环写9*9乘法表
25   int i = 1;
26   int j = 1;
27   do{
28     j=1;
29     do{
30       System.out.print(j + "*" + i + "=" + i*j + " ");
31       j++;
32     }while(j<=i);
33     System.out.println();
34     i++;
35   }while(i<10);
36   
37 
38   // for 倒三角形
39   for(int i = 5;i>0;i--){
40     for(int j=5-i;j>0;j--){
41       System.out.print(" ");
42     }
43     for(int k=2*i-1;k>0;k--){
44       System.out.print("*");
45     }
46     System.out.println();
47   }
48 
49 
50 
51   // do while 倒三角形
52   int i = 4;
53   int j = 0;
54   do{
55     int z = 4-i;
56     do{
57       if(z>0)
58         System.out.print(" ");
59       z--;
60     }while(z>0);
61     j = 2*i+1;
62     do{
63       System.out.print("*");
64       j--;
65     }while(j>0);
66     System.out.println();
67     i--;
68   }while(i>=0);
69 
70   
71 
72   //while 倒三角形
73   int i = 4;
74   int j = 0;
75   while(i>=0){
76     int z = 4-i;
77     while(z>0){
78       System.out.print(" ");
79       z--;
80     }
81     j = 2*i+1;
82     while(j>0){
83       System.out.print("*");
84       j--;
85     }
86     System.out.println();
87     i--;
88   }
 
原文地址:https://www.cnblogs.com/zou-zou/p/8591499.html