版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 JavaJava中的程序执行流程中的程序执行流程本章中我们将接触编程语言的另一个基本的部分本章中我们将接触编程语言的另一个基本的部分程序执行流程。在进行本章之前,我们首先来回顾一下前程序执行流程。在进行本章之前,我们首先来回顾一下前面的知识。这些知识都是本章需要用到的。面的知识。这些知识都是本章需要用到的。大括号的作用。我们在第一章中初步认识了大括号的作用。我们在第一章中初步认识了Java中中大括号的作用。我们使用大括号来开始并结束一个类以及一大括号的作用。我们使用大括号来开始并结束一个类以及一个方法的定义。个方法的定义。boolean类型和布尔运算符。类型和布尔运算符。boo
2、lean变量将在本章中变量将在本章中扮演十分重要的角色。虽然扮演十分重要的角色。虽然boolean变量只有两个值。但是变量只有两个值。但是确实我们进行思考最基本的元素:真或假。确实我们进行思考最基本的元素:真或假。Java中基本类型的赋值和运算规则。中基本类型的赋值和运算规则。4.1 4.1 顺序执行顺序执行在前面的例程中,我们写的代码无一例外的都是从在前面的例程中,我们写的代码无一例外的都是从main方方法第一行开始执行。直到法第一行开始执行。直到main方法的最后一行。我们所说的方法的最后一行。我们所说的main方方法的第一行就是法的第一行就是main方法中左大括号(方法中左大括号(“”)
3、后面的第一行程序,)后面的第一行程序,最后一行就是指与那个大括号对应的右大括号(最后一行就是指与那个大括号对应的右大括号(“”)前面的一行)前面的一行。我们发现顺序执行的程序只能处理很直接很简单的事情,我们发现顺序执行的程序只能处理很直接很简单的事情,例如上面的例程中,我们仅仅模拟了一次例如上面的例程中,我们仅仅模拟了一次“总价总价 = 价格价格 * 数量数量”的的计算过程。计算过程。 4.2 4.2 使用使用if-elseif-else让程序懂得判断让程序懂得判断迄今为止,我们的代码还都是顺序的一行行执行。迄今为止,我们的代码还都是顺序的一行行执行。如果我们在程序中需要根据条件来判断一段代码
4、是否执行,如果我们在程序中需要根据条件来判断一段代码是否执行,应该怎么实现呢?当我们想实现类似应该怎么实现呢?当我们想实现类似“如果数量和单价是合如果数量和单价是合理的,就计算总价,否则,告诉对方说数量和单价不对理的,就计算总价,否则,告诉对方说数量和单价不对”这这样的逻辑的时候,就需要用到样的逻辑的时候,就需要用到Java中的中的if-else语句了。语句了。if-else语句是语句是Java语法中用来支持程序根据一个语法中用来支持程序根据一个boolean值来让程值来让程序的执行流程进行跳转的语句。下面我们来详细讨论一下序的执行流程进行跳转的语句。下面我们来详细讨论一下Java中中if-e
5、lse语句的使用。语句的使用。4.2.1 if4.2.1 if语句语句我们继续刚才讨论的问题。首先我们将程序的功能我们继续刚才讨论的问题。首先我们将程序的功能修改为修改为“只有在只有在price和和amount两个变量值都大于两个变量值都大于0的时候,的时候,才去计算总价(才去计算总价(totalCost)”。在。在Java中,我们使用中,我们使用if语句语句来让程序来让程序“有条件的执行某个代码块有条件的执行某个代码块”。4.2.2 if4.2.2 if语句的嵌套语句的嵌套if语句的代码块可以是任何符合语句的代码块可以是任何符合Java语法的代码,当语法的代码,当然也可以包含另一个然也可以包
6、含另一个if语句。下面我们来看一个包含语句。下面我们来看一个包含if语句语句嵌套的例程。嵌套的例程。if语句代码块中可以是任何符合语句代码块中可以是任何符合Java语法的代码。我语法的代码。我们在本节中看到了们在本节中看到了if语句的嵌套。语句的嵌套。if语句是一个多行的语句。我们知道语句是一个多行的语句。我们知道Java中一个语句中一个语句可以有多行可以有多行if语句代码块的括号可以用来帮助我们识别代码块的语句代码块的括号可以用来帮助我们识别代码块的开始和结束,最好不要省略,即使开始和结束,最好不要省略,即使if语句的代码块只有一个语句的代码块只有一个语句。语句。4.2.3 if-else4
7、.2.3 if-else语句语句理解了理解了if以后,以后,else就很好理解了。就很好理解了。“else”也是也是java中的关键字中的关键字,它只能和,它只能和if语句配合使用,用来处理语句配合使用,用来处理if条件表达式的值为条件表达式的值为false的情况。的情况。Java语法中,语法中,else后面也会跟一个用大括号括起来的代码块。这个代码后面也会跟一个用大括号括起来的代码块。这个代码块会执行的条件就是块会执行的条件就是if语句的条件表达式的值为语句的条件表达式的值为false,也就是,也就是if语句主体语句主体没有执行。没有执行。if-else组合在一起的语义就是:组合在一起的语义
8、就是:“如果如果”条件表达式值为真条件表达式值为真,则执行,则执行if代码块,代码块,“否则否则”就执行就执行else代码块。代码块。4.2.4 if-else4.2.4 if-else语句嵌套语句嵌套假设超市为了促销,在结算时对不同的消费金额赠假设超市为了促销,在结算时对不同的消费金额赠送不同面值的抵价券:送不同面值的抵价券:100元一下的不送抵价券;元一下的不送抵价券;100元(含元(含)到)到500元(含)的送元(含)的送55元抵价券;元抵价券;500元以上的赠送元以上的赠送155元元抵价券。抵价券。当有程序需要根据多个条件执行不同操作时,我们当有程序需要根据多个条件执行不同操作时,我们
9、可以使用多个可以使用多个if-else语句嵌套。语句嵌套。有时候省略有时候省略else语句块的大括号会让程序更易读。语句块的大括号会让程序更易读。4.3 4.3 使用使用whilewhile进行循环进行循环至今为止,我们的接触到的程序虽然有了跳转,但是程至今为止,我们的接触到的程序虽然有了跳转,但是程序总的执行顺序还是顺序的从上至下的,直观地说,就是程序执序总的执行顺序还是顺序的从上至下的,直观地说,就是程序执行起来是行起来是“不回头不回头”的。在现实中,我们通常需要同一段代码循的。在现实中,我们通常需要同一段代码循环(环(loop)执行多次,这时候我们应该怎么办呢?)执行多次,这时候我们应该
10、怎么办呢?Java中的中的while语句就是用来完成这个功能的,下面让我们开始本节的内容。在语句就是用来完成这个功能的,下面让我们开始本节的内容。在本节中,我们将第一次让程序循环执行。本节中,我们将第一次让程序循环执行。4.3.1 4.3.1 使用使用whilewhile语句语句现在我们需要一个结账功能给结账员使用,每个结账员在现在我们需要一个结账功能给结账员使用,每个结账员在接待了一定数量的顾客后就会休息,所以我们这个程序不但应该能接待了一定数量的顾客后就会休息,所以我们这个程序不但应该能够结账,还应该能够在循环运行一定次数的结账计算后自动退出,够结账,还应该能够在循环运行一定次数的结账计算
11、后自动退出,这样结账员就知道自己应该休息了。结账功能的代码我们前面已经这样结账员就知道自己应该休息了。结账功能的代码我们前面已经给出了(就是计算总价的代码),下面我们要引入给出了(就是计算总价的代码),下面我们要引入Java中能够让这中能够让这段结账代码重复执行的语句段结账代码重复执行的语句while语句。语句。1 while语句的语法语句的语法2 理解理解while语句语句3 分析上面的例程分析上面的例程4.3.2 4.3.2 使用使用do-whiledo-while语句语句下面我们介绍下面我们介绍while语句的另一种形式语句的另一种形式do-while语句。其中语句。其中“do”也是也是
12、Java中的关键字。它的功能与中的关键字。它的功能与while语句是一样的,但是在某语句是一样的,但是在某些情况下,使用些情况下,使用do-while语句会让程序写起来更轻松。现在我们接触到的语句会让程序写起来更轻松。现在我们接触到的程序还无法找到可以让程序还无法找到可以让do-while语句显得比语句显得比while语句更方便的例程。语句更方便的例程。4.4 4.4 使用使用forfor进行循环进行循环下面我们介绍一下下面我们介绍一下for语句。虽然绝大多数情况下,语句。虽然绝大多数情况下,for语句能做的事情其它循环语句也是可以做的。但是在循语句能做的事情其它循环语句也是可以做的。但是在循
13、环的各种语句中,环的各种语句中,for语句是使用的最频繁的。语句是使用的最频繁的。4.4.1 4.4.1 自增和自减操作自增和自减操作为了方便的使用为了方便的使用for语句,我们在这里需要先介绍一下语句,我们在这里需要先介绍一下Java中的自增和自减运算符。首先我们介绍自增运算符,自增运算符在中的自增和自减运算符。首先我们介绍自增运算符,自增运算符在Java中是两个连续的加号(中是两个连续的加号(+)。自增运算符是一个一元运算符,)。自增运算符是一个一元运算符,它的作用是将数字类型的变量的值加它的作用是将数字类型的变量的值加1。加加运算和减减运算可以用在加加运算和减减运算可以用在Java中任何
14、表示数字的基本中任何表示数字的基本类型上。类型上。加加运算(加加运算(+)和减减运算()和减减运算(-)是用来方便的对变量进)是用来方便的对变量进行加行加1或者减或者减1操作的。操作的。“+”和和“-”写在运算符的前面或者后面有不同的运算顺写在运算符的前面或者后面有不同的运算顺序。序。在一个运算式中使用在一个运算式中使用“+”或或“-”操作符时,要注意不要操作符时,要注意不要引起歧义。引起歧义。4.4.2 for4.4.2 for语句语句下面我们回到主题,讲解下面我们回到主题,讲解for语句。我们给出使用语句。我们给出使用for语句循环的例程,例程中就是使用语句循环的例程,例程中就是使用for
15、语句替换了语句替换了while语句语句,程序的功能与,程序的功能与while语句的例程是一样的。语句的例程是一样的。4.4.3 for4.4.3 for语句省略形式语句省略形式for语句的小括号内有三个语句,其实这三个语句都语句的小括号内有三个语句,其实这三个语句都是可以省略(也就是留空)的。首先我们省略第一个和第三是可以省略(也就是留空)的。首先我们省略第一个和第三个语句,可以让个语句,可以让for语句看起来与语句看起来与while语句几乎一样。语句几乎一样。for语语句的省略形式给句的省略形式给for语句带来了灵活,但是这种省略形式并语句带来了灵活,但是这种省略形式并不是值得推荐的。我们还
16、是应该尽量按照不是值得推荐的。我们还是应该尽量按照for语句最普通的语句最普通的用法来使用用法来使用for语句。语句。for语句小括号内的三个语句都是可以省略的,但是语句小括号内的三个语句都是可以省略的,但是这并不值得推荐。这并不值得推荐。4.5 4.5 语句中不能不说的事语句中不能不说的事迄今为止,我们已经学到了迄今为止,我们已经学到了Java中最常用的三种循环中最常用的三种循环语句和语句和if-else语句。好,现在在脑子里回味一下这三种循环语语句。好,现在在脑子里回味一下这三种循环语句的的语义和句的的语义和if-else语句的语义。现在我们回忆一下前面的例语句的语义。现在我们回忆一下前面
17、的例程,要让自己一定要弄懂前面给出的例程以及例程的执行结果程,要让自己一定要弄懂前面给出的例程以及例程的执行结果。现在我们需要带着一个清醒的脑袋进入本节,否则,你可能。现在我们需要带着一个清醒的脑袋进入本节,否则,你可能会被本节的内容给弄迷糊。会被本节的内容给弄迷糊。4.5.1 4.5.1 小心复杂语句中创建的变量!小心复杂语句中创建的变量!迄今为止我们学习了多种复杂语句(包括迄今为止我们学习了多种复杂语句(包括for语句,语句,while语句,语句,do-while,if语句和语句和if-else语句),语句),Java语法规定,语法规定,在它们中创建的变量,在外部(可理解为,在这些语句中的
18、大在它们中创建的变量,在外部(可理解为,在这些语句中的大括号外)是无法使用的。本节中我们使用括号外)是无法使用的。本节中我们使用for循环来说明这点。循环来说明这点。循环语句中创建的变量不可以在循环外使用。循环语句中创建的变量不可以在循环外使用。if语句中创建的变量在外部不能使用语句中创建的变量在外部不能使用对于对于if-else语句,语句,if代码块中创建的变量不能在代码块中创建的变量不能在else代码代码块使用。同时,块使用。同时,if-else语句中创建的变量不能在语句外部使用。语句中创建的变量不能在语句外部使用。4.5.2 4.5.2 别让循环次数给弄懵了别让循环次数给弄懵了大多数情况
19、下,我们会使用一个大多数情况下,我们会使用一个int变量来控制循环变量来控制循环的次数,上面的关于循环的例程中无一例外都是这样做的。的次数,上面的关于循环的例程中无一例外都是这样做的。假设我们用假设我们用int变量变量times来控制循环的次数,对于最常用的来控制循环的次数,对于最常用的for循环,如果我们想让循环体执行循环,如果我们想让循环体执行n次,那么最常见的写法次,那么最常见的写法就是:给就是:给times赋值为赋值为0;然后把条件语句设置为;然后把条件语句设置为times n;然后在条件变化语句或者循环体内将然后在条件变化语句或者循环体内将times的值加的值加1。这对于。这对于wh
20、ile语句也是同样适用的。对于语句也是同样适用的。对于do-while语句,如果语句,如果n大于大于等于等于1,也是适用的。,也是适用的。4.5.3 4.5.3 循环的嵌套循环的嵌套我们前面看到过我们前面看到过if-else语句的嵌套,同样的,多种语语句的嵌套,同样的,多种语句之间都是可以嵌套的,例如句之间都是可以嵌套的,例如if代码块中可以有代码块中可以有for循环,循环,for循环中可以有循环中可以有while循环,循环,do-while循环中可以有循环中可以有if-else语句语句等等。只要语句的语法正确,如何嵌套、嵌套多少层这都是等等。只要语句的语法正确,如何嵌套、嵌套多少层这都是允许
21、的。允许的。4.6 continue4.6 continue关键字与关键字与breakbreak关键字关键字前面我们介绍了三种循环的语句:前面我们介绍了三种循环的语句:while、do-while以以及及for。下面我们介绍两个可以用在循环体代码中的关键字:。下面我们介绍两个可以用在循环体代码中的关键字:continue和和break。这两个关键字用在循环体中,可以让我们。这两个关键字用在循环体中,可以让我们更灵活的结束一段循环体或者一个循环语句。更灵活的结束一段循环体或者一个循环语句。4.6.1 continue4.6.1 continue关键字关键字continue关键字用在各种循环体中其
22、语义是一样的,关键字用在各种循环体中其语义是一样的,我们以我们以for循环为例子介绍循环为例子介绍continue关键字。其余的循环关键字。其余的循环形式形式也可以类比的使用也可以类比的使用continue关键字。关键字。如果我们需要一个程序循环如果我们需要一个程序循环5次,但是在循环到第次,但是在循环到第3次的时候,循环体内的代码将不会完全被执行。要实现这个次的时候,循环体内的代码将不会完全被执行。要实现这个功能,我们可以使用前面介绍的功能,我们可以使用前面介绍的if-else语句来判断,在这里语句来判断,在这里我们介绍如何使用我们介绍如何使用continue关键字实现这个功能。关键字实现这
23、个功能。4.6.2 break4.6.2 break关键字关键字break关键字可以用在循环体中,它的语义是终止整关键字可以用在循环体中,它的语义是终止整个循环。我们看下面这段代码,它与上一小节中的代码基本个循环。我们看下面这段代码,它与上一小节中的代码基本相同,不同的是我们将相同,不同的是我们将continue关键字替换为了关键字替换为了break关键字关键字。break关键字的语义是终止其所在的循环或语句。关键字的语义是终止其所在的循环或语句。break语句结束其所在的循环,而如果有循环嵌套,语句结束其所在的循环,而如果有循环嵌套,则不会终止外部的循环。则不会终止外部的循环。Java语法要
24、求语法要求break语句要放在其所在的代码块的最语句要放在其所在的代码块的最后一行。后一行。4.7 4.7 使用使用switchswitch进行跳转进行跳转本节中我们将接触本节中我们将接触Java中的中的switch语句。语句。switch语句语句比起前面我们介绍的语句,语法结构最复杂,而且涉及的关比起前面我们介绍的语句,语法结构最复杂,而且涉及的关键字可以说是最多的。但是键字可以说是最多的。但是switch却不难理解。却不难理解。switch语句语句不是用来循环的,它是用来根据一个不是用来循环的,它是用来根据一个int变量或者变量或者char变量的变量的值让程序进行分支的。值让程序进行分支的
25、。1case语句语句2 default语句语句4.7 4.7 使用使用switchswitch进行跳转进行跳转switch语句的执行流程语句的执行流程 4.8 4.8 大例子大例子本节中我们将接触如何使用本节中我们将接触如何使用Java读取命令行输入的读取命令行输入的数据,让程序更加互动。然后,我们将使用用户输入的数据数据,让程序更加互动。然后,我们将使用用户输入的数据来构建一个模拟的超市结账程序。来构建一个模拟的超市结账程序。4.8.1 4.8.1 从控制台读取数据从控制台读取数据小节中我们将给出小节中我们将给出Java从控制台读取数据的代码。从控制台读取数据的代码。代码中涉及到了很多我们没有接触过的知识。我们在这里不代码中涉及到了很多我们没有接触过的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年林业调查类模拟题及答案详解
- 河北越启恒橡塑制品有限公司介绍企业发展分析报告模板
- 新部编版七年级语文上册期中模拟试卷(含答案)
- 江苏省徐州市铜山区三校2026-2027学年九年级上学期第一月学情调研化学试卷(含答案)
- 黑龙江省大庆市联考2026-2027学年七年级上学期10月阶段检测语文试卷(含答案)
- 甘肃省定西市渭源县会川中学等校2027届九年级上学期第一次阶段练习数学试卷(含简略答案)
- 2026-2027学年北师大版数学八年级上册期中测试卷(含答案)
- 2026年福建省加工中心操作技能考核题库及答案
- 2026年陕西省西安市第八中学八年级英语第4单元语法练习题及答案
- 2026年苏教版小学英语四年级上册第6单元课后练习及答案
- 2026年自动控制原理期末考试题及答案
- 草原牧区人畜共患病中西医结合科普课件
- 新教科版科学四年级上册3-1《声音是怎样产生的》课件
- 2026年叉车司机N1证理论知识考试题库完整答案
- 铁路接触网安装施工手册
- 2025年山西大同市高职单招职业技能考试模拟试卷含答案详解(黄金题型)
- 创伤失血性休克应急预案演练脚本(2篇)
- (高清版)DB54∕T 0484-2025 《健康体检机构 服务规范》
- 水运工程质量培训课件
- 部编版五年级语文上册第一单元习作-我的心爱之物
- 《现代酒店管理与数字化运营》高职完整全套教学课件
评论
0/150
提交评论