问题:使用循环几年了,被人问到有什么区别时,竟然有点语塞,温故一下大神的理解,整理一下。
总结: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 }