java控制循环教案_JavaSE学习(四):控制流程之循环:for、while循环

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

1.1for 循环

语法结构:

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

循环体

}

语法解析:

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

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

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

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

例程Demo3.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classDemo3{2 public static voidmain(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)

表达式1,2,3都不写会出现什么情况?//死循环 for (;;)

1.2.1练习

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

2: 5的阶乘

3:1-1000内的水仙花数

Text1.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classText1{2 public static voidmain(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 inty,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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classDemo5{2 public static voidmain(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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classDemo6{2 public static voidmain(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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classDemo7{2 public static voidmain(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

for(int j=0; j

循环体内容

}

}

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

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classDemo8{2 public static voidmain(String[] args){3 /***4

5 for嵌套实现乘法口诀6 1*1=17 1*2=2 2*2=48 1*3=3 2*3=6 3*3=99 1*4=4 2*4=8 3*4=12 4*4=1610 1*5=5 2*5=10 3*5=15 4*5=20 5*5=2511 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=3612 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=4913 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=6414 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=8115

16 */

17

18 intresult;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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值