APP下载

Java语言中的三种循环语句教学研究

2018-10-25曾新洲

计算机时代 2018年9期
关键词:Java语言

曾新洲

摘 要: 循环语句是面向对象程序设计的基础,Java程序设计语言提供了三种基本的循环语句:while循环语句、for循环语句和do…while循环语句[1],通常情况下,这三种循环语句可互换[2],但又略有不同,for循环语句与另外两种循环语句相比,结构更紧凑,编写更方便,使用更频繁。本文针对高职学生学习循环语句难度较大的问题,提出了一种引导式教学方法,通过分析一个典型案例---“求前10个自然数的和”的执行过程,提炼出循环体、循环执行条件等,引导学生自己拼凑出循环语句,同时也分析了Java语言中三种循环语句的结构,并对三种循环语句的相同点和不同点进行了详细探讨。

关键词: Java语言; for循环语句; while循环语句; do…while循环语句

中图分类号:TP312 文献标志码:A 文章编号:1006-8228(2018)09-51-04

Abstract: Loop statements are the basis of object oriented programming, and the Java programming language provides three basic loop statements: while loop statement, for loop statement, and do... While loop statement, usually, these three loop statements are interchangeable, but are slightly different, for loop statement is more compact in structure, more convenient to write, and more frequently used than the other two loop statements. In order to solve the problem of Higher Vocational Students' difficulty in learning loop sentences, a guiding teaching method is put forward. By analyzing a typical case, the execution process of "the sum of the 10 natural numbers in the first place", the body of the loop and the execution condition of the loop are extracted to guide the students to piece together the loop sentences. The structure of three loop statements in Java language is discussed, and the similarities and differences between the three loop statements are discussed in detail.

Key words: Java language; for loop statement; while loop statement; do...while loop statement

0 引言

Java语言作为目前使用最为广泛的一种程序设计语言,有三种基本的循环语句:while循环语句、for循环语句和do…while循环语句。高职有不少学生英语和数学基础较差,逻辑思维能力较弱,在学习循环语句时有点力不从心。为了让学生尽快掌握循环语句,在教学过程中尽可能联系实际,例如采用引导式教学法,引导学生使用循环语句实现“求前10个自然数的和”;然后要求学生模仿教师的做法,使用循环语句实现“求前100个自然数的和”;并进行扩展练习,如使用循环语句实现“求2+4+6+…+18+20的和”。下面我们对Java语言中的三种循环语句进行详细分析。

1 while循环语句

while循环语句的通用格式如下:

while(②)

{

}

其中①表示while循环语句之前的语句,②表示循环执行的条件,③表示循环体[3](满足循环条件时,执行循环体,循环体为重复执行的代码),④表示while循环语句之后的语句,while循环语句的执行流程如图1所示。

在教学中采用先分析执行过程,然后再拼凑循环语句的方式进行讲解,例如,采用while循环语句实现“求前10个自然数的和”,教学过程设计如下。

⑴ 求和运算,定义一个初始值为0的整形变量保存最终结果,如下所示:

int sum=0;

⑵ 执行求和运算,这里采用小学生的做法,首先将自然数1加入到最终的结果中:

sum=sum+1; //語句⑴

⑶ 然后将自然数2加入到最终的结果中:

sum=sum+2; //语句⑵

依此类推:

sum=sum+3; //语句⑶

sum=sum+10; //语句⑽

语句⑴、⑵、⑶….⑽中的数字不相同,且相邻语句之间的数字相差1,若采用一个整形变量i(初始值为1)来替换语句⑴中的数字1,语句⑴执行完以后,变量i的值加1,使用变量i替换语句⑵中的数字2,语句⑵执行完后,变量i的值再加1,使用变量i替换语句⑶中的数字3,依此类推,执行过程如下:

int i=1;

sum=sum+i; //等同于sum=sum+1

i++;

sum=sum+i; //等同于sum=sum+2

i++;

sum=sum+i; //等同于sum=sum+10

i++;

上述执行过程中,有两条语句重复执行:

sum=sum+i;

i++;

这部分代码可作为while循环语句通用格式中的③,变量i的初始值为1,每执行一次循环体③,i的值加1,最终i的值变成11,程序结束,因此,可将i<11作为while循环语句执行的条件②。而以下两行语句在while循环之前执行。

int sum=0;

int i=1;

因此,可将其作为while循环之前的第①部分,引导学生拼凑出如下while循环语句。

int sum=0;

int i=1;

while(i<11)

{

sum=sum+i;

i++;

}

在编写服务器程序时,经常使用无限循环,while循环语句表示无限循环的一般格式如下:

while(true)

{

循环体;

}

上述“求前10个自然数的和”的while循环语句,可使用无限循环方式实现,实现过程如下:

int sum=0;

int i=1;

while(true)

{

if(i<11)

{

sum=sum+i;

i++;

}

else

break;

}

在上述語句中,将循环执行的条件"i<11"放置在循环体内,一旦循环变量i的值等于11,便结束while循环语句。

2 for循环语句

for循环语句的通用格式如下:

for(②; ③; ④)

{

}

其中①表示for循环语句之前的语句,②一般用来做循环变量的初始化操作,③表示循环执行的条件,④表示循环变量的变化,⑤表示循环体[4],⑥表示for循环语句之后的语句,for循环语句的执行流程[5]如图2所示。

根据while循环语句部分的分析,可通过for循环语句实现“求前10个自然数的和”。

int sum=0;

int i=1;

这两条语句是while循环语句之前执行的语句,其中变量i为循环变量,因此,可将int i=1;放在for循环语句的第②个部分(循环变量的初始化部分),int sum=0;放在for循环语句的第①个部分(for循环语句之前执行的语句),while循环语句中的循环体包括以下两条语句:sum=sum+i; i++;其中sum=sum+i;作为for循环语句第⑤个部分(循环体),而i++作为for循环语句的第④个部分(循环变量的变化),i<11为循环的执行条件,作为for循环语句中的第③部分,用for循环语句实现“求前10个自然数的和”如下所示:

int sum=0;

for(int i=1; i<11; i++)

{

sum=sum+i;

}

实际上,for循环语句的通用格式中的第②、③、④部分都可以省略,但它们之间的分号必须保留,以“求前10个自然数的和”为例,代码如下:

int sum=0;

int i=1

for(; ;)

{

if(i<11)

{

sum=sum+i;

i++;

}

else

break;

}

此时,for循环语句变成了一个无限循环,类似于while无限循环,将循环变量初始化操作放在for循环语句之前,循环执行的条件和循环变量的变化放置在for循环体内。

3 do…while循环语句

do…while循环语句的通用格式如下:

do

{

} while(③);

其中①表示do…while循环语句之前的语句,②表示循环体,③表示循环执行的条件,④表示do…while循环语句之后的语句,do..while循环语句的执行流程如图3所示。

在do…while循环语句中,先执行循环体,然后再判断循环执行的条件,如果条件为真,则继续执行循环体,如果条件为假,则结束整个do…while循环语句,采用do…while循环语句实现“求前10个自然数的和”代码如下:

int sum=0;

int i=1;

do

{

sum=sum+i;

i++;

} while(i<11);

这种方式跟while循环语句非常类似,只是将while循环语句中的while换成do,然后将while(i<11)放在了循环体后,并以分号结束。但do…while循环语句与while循环语句并不完全相同,因为do…while循环语句不管循环执行的条件是否为真,都会执行一次循环体,因此,初次判断循环执行的条件为真时,两者完全相等,而初次判断循环执行的条件为假时,do…while循环语句与while循环语句不同,以下的do…while循环语句和while循环语句就不相同。

while循环语句如下:

int i=20;

while(i<10)

{

System.out.println(i);

i--;

}

do…while循环语句如下:

int i=20;

do

{

System.out.println(i);

i--;

} while(i<10);

其中while循环语句没有输出,而do…while循环语句输出20。

4 结束语

do…while循环语句不管条件如何,至少会执行一次,while循环语句和for循环语句可互换,for循环语句与while循环语句相比,结构更紧凑,在实际开发中,更倾向于使用for循环语句,特别是在多重循环中均采用for循环语句来实现。在编写循环语句时,必须弄清循环语句的四个组成部分:循环变量的初始化、循环执行的条件、循环体和循环变量的变化。其中循环执行的条件和循环体最为关键,可采用归纳法,提取出重复执行的部分——循环体[6],通过分析,确定什么情况下执行循环——循环语句的执行条件,确定了上述两部分内容后,循环语句也就基本确定了。

参考文献(References):

[1] [美]Bruce Eckel著,陈昊鹏译.Java编程思想(第四版)[M].机械工业出版社,2007.

[2] 李英.C语言中for循环语句教学设计[J].网络与信息工程,2017.8:60-61

[3] 凯 S.霍斯特曼(Cay S.Horstmann).Java核心技术 卷I:基础知识(原书第十版)[M].机械工业出版社,2016.

[4] 张淑敏,王元芬.C语言中三种循环语句辨析[J].电脑与信息技术,2017.25(1):26-27

[5] 明日科技.Java从入门到精通(第四版)[M].清华大学出版社,2016.

[6] 宋灵香.C语言中for循环语句教学研究[J].软件导刊,2013.12(3):184-186

猜你喜欢

Java语言
Java语言图形编程工具的设计及应用
高职《Java语言程序设计》课程的“微课”制作与应用研究
论开闭原则在JAVA程序设计中的应用
基于Android平台的健康医疗APP设计与开发
计算机软件开发中的JAVA编程语言分析
用户隐私保护之手机密码保险箱
Android手机三轴加速度传感器使用
基于Java语言的手机软件开发技术分析