JavaSE学习(四):数据结构之循环:for、while循环

第一 循环结构 for、while、do while

1.1 for 循环

语法结构:

for(表达式一;表达式二;表达式三) {

  循环体

}

语法解析:

表达式一:声明初始化变量,只执行一次。可以同时声明多个变量用逗号隔开。

表达式二:判断变量是否需要循环的条件。

表达式三:每次执行完循环体后,变量变化的具体情况。

for循环开始执行后,表达式一开始声明初始化变量,初始化变量后,执行表达式二判断变量是否满足布尔表达式,若不满足条件,执行结束,若满足条件,则执行循环体内的内容,执行完后再执行表达式三改变变量的值,再执行表达式二判断改变后的值是否满足条件,一次循环,直到不满足表达式二里的布尔表达式。

例程Demo3.java

 1 public class Demo3{
 2     public static void main(String[] args) {
 3         
 4         int i ;                      //全局变量,main方法范围内都可以调用
 5         for(i=1; i<5;++i){
 6             
 7             System.out.println("我是for里面的i="+i);
 8             
 9         }
10         System.out.println("我是for外面的i="+i);     //全局变量,main方法范围内都可以调用
11         for (int j =1; j<7; ++j){
12             
13             System.out.println("我是for里面的 j="+j);         //局部变量,只能在定义范围内调用
14         }
15         //System.out.println("我是for外面的 j"+j);
16 
17     }
18     
19 }
View Code

1.2 局部变量与全局变量(有误?)

全局变量:main范围内,都能被执行;

局部变量:定义在局部,只能在局部范围内被执行。作用域具有局限性,比如在for循环中定义的变量,只能在该for循环中被访问,出了范围就不能被访问。

例程Demo3.java

思考:表达式1写在for循环外出现什么情况?

       表达式2不写会出现什么情况?//死循环

表达式3不写会出现什么情况?//死循环

表达式1,2,3都不写会出现什么情况?//

1.2.1练习

1:求1-100内所有数/奇数/偶数的和;

2: 5的阶乘

3:1-1000内的水仙花数

Text1.java

 1 public class Text1{
 2     public static void main(String[] args){
 3         int i,sum=0;
 4         for( i=1;i<101; ++i){
 5             sum =sum+i;
 6             
 7         }
 8         System.out.println("1到100的和是:"+sum);
 9     
10         int j,sumJiShu=0;
11         for( j=1; j<100;  j+=2){
12             
13             sumJiShu =sumJiShu+j;
14             
15         }
16         System.out.println("1到100所有奇数的和是:"+sumJiShu);
17 
18         int k,sumOuShu=0;
19         for(k=2;k<101;  k+=2){
20             
21             sumOuShu =sumOuShu+k;
22             
23         }
24         System.out.println("1到100所有偶数的和是:"+sumOuShu);
25 
26         
27         int x,sumjShu=1;
28         for(x=1;x<6;  x+=1){
29             
30             sumjShu =sumjShu*x;
31             
32         }
33         System.out.println("5的阶乘是:"+sumjShu);
34     
35     
36         int y,a,b,c;
37         int conunt = 0;
38         //求1-1000的水仙花数
39         //三位数,每位数的个位,十位,百位所对应的数值的立方的和正好等于这个数。
40         for(y=100; y<1000;  ++y){
41             
42             a=y/100 ;   //百位
43 
44             b=(y/10)%10 ;
45 
46             c=y%10 ;
47 
48 
49             if (a*a*a+b*b*b+c*c*c ==y){
50                 
51                 System.out.println("水仙花数为:"+y); 
52                 conunt ++;
53                 
54             }
55             
56         }
57         
58         System.out.println("共有水仙花数"+conunt+"个");
59 
60     }
61     
62 }
View Code

1.3 while 循环

语法:

while(布尔表达式){

循环内容;

}

语法解析:满足布尔表达式执行循环内容,不满足跳出循环,一般循环里包括改变循环条件的变量。

例程:Demo5.java

 1 public class Demo5{
 2     public static void main(String[] args){
 3         int i = 0;
 4         while (i<10){
 5             System.out.println("鲁班七号");
 6             i++;
 7         }
 8         
 9         int j = 0;
10         while (true){
11             System.out.println("智障二百五");
12             j++;
13             if(j==10){
14                 break;       //跳出循环,离它最近的一层循环while循环
15             }
16             
17         }
18         
19     }
20     
21 }
View Code

1.3.1 break关键字

作用:

1、在Java中做终止符,防止渗透;

2、跳出循环的一个条件(跳出离它最近的一层的循环);

例程:Demo5.java

1.3.2 contiue关键字

作用:跳过单次循环,不继续执行本次循环内容,继续进行下一次循环

例程:Demo6.java

 1 public class Demo6{
 2     public static void main(String[] args){
 3         //continue 关键字
 4         int i = 0;
 5         while (i<10) {
 6             i++;
 7             if (i==5){
 8                 
 9                 System.out.println("吃到第"+i+"个包子看见虫!");
10 
11                 continue;
12             }
13             
14             System.out.println("小明吃了第"+i+"个包子!");
15             
16         }
17         
18     }
19     
20 }
View Code

思考题:for循环和while循环可以互换吗?for循环与while循环运用的时机是什么时候?

可以互换。可以进行互换,但往往一般是知道循环次数的情况下进行互换。for循环一般用于知道循环的次数;while循环一般用于不知道循环次数。

1.4 do while 循环

语法:

do {

  循环内容;

}  while(布尔表达式);

语法解析:先执行一次循环内容,再判断是否满足条件,满足布尔表达式执行循环内容,不满足跳出循环,一般循环里包括改变循环条件的变量。

例程:Demo7.java

 1 public class Demo7{
 2     public static void main(String[] args){
 3         int i =-8;
 4         do{
 5             System.out.println(i);
 6         }while(i >0);
 7         
 8     }
 9     
10 }
View Code

思考题while do while的区别?

while 循环可能一次循环内容都不会执行,但是do while 循环至少会执行一次循环内容。

例程:Demo7.java

练习用while实现一千内的水仙花数并计数;

1.5 循环的嵌套(for循环嵌套为主)

for(int i=0;i<M;i++){

for(int j=0; j<N;j++){

  循环体内容

}

}

语法解析:外层循环循环一次,里层循环循环直到跳出循环为止,循环的总次数为M*N次。

例程:用for 循环实现九九乘法口诀Demo8.java

 1 public class Demo8{
 2     public static void main(String[] args){
 3         /***
 4         
 5         for嵌套实现乘法口诀
 6         1*1=1
 7         1*2=2   2*2=4
 8         1*3=3   2*3=6   3*3=9
 9         1*4=4   2*4=8   3*4=12  4*4=16
10         1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
11         1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
12         1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
13         1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
14         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
15         
16         */
17         
18         int result;
19         
20         for(int j=1; j<=9;   j++){
21         
22             for(int i=1;i<=j;  i++){
23                 
24                 result = i*j;
25                 System.out.print( i+"*"+j+"="+ result+"\t");   //"制表符\t"
26 
27             }
28         System.out.println( );
29 
30         }
31         
32     }
33     
34 }
View Code

猜你喜欢

转载自www.cnblogs.com/Kanekiyi/p/9500995.html
今日推荐