3.1程序结构
顺序结构、选择结构和循环结构是结构化程序设计的3种基本结构,是各种复杂程序的基却单元。图3.1 展示了这3种程序结构的基本理念,其中,第幅图 是顺序结构的流程图, 它就书写顺序执行的语句构成的程序段;第二幅图是选择结构的流程图,它主要根据输入数据和中国的不同选择执行不同的语句,选择结构主要由条件语句(也叫判断语句或者分支语句)组成:而第三幅图是循环结构的流程图,它是在一定条件下反复执行某段程序的流程结构,其中,-组被重复执行的语句称为循环体,而决定循环是否止的判断条件是循环条件,循环结构主要由循环语句组成。
3.2 条件语句
在Java中,条件语句主要包括i语句和swich语句两种
3.2.1 if条件语句
if条件语句主要用于告诉程序在某个条件成立的情况下执行某段语句,而在另一一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。“布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句:件之后的语句。if条件语句可分为简单的if条件语句、if....ee语句和让若为alse,则不执行证条....else if多分支语句。
1.简单的if条件语句
例3.1
2. if...else 语句
if.. else语句是条件语句中最常用的一种形式, 它会针对某种条件有选择地做出公为“如果满足某种条件,就进行某种处理,否则就进行另种处理”。
例3.3
3.if...else if多分支语句
例3.4
4.if语句的嵌套
前面讲过三种形式的条件语句,这三种形式的条件语句都可以嵌套条件语句。
例3.5
3.2.2 Switch多分支语句
Switch语句中参数必须是整型、字符型、枚举类型或字符串类型,常量值1~n必须是与参数兼容的数据类型,switch语句首先计算参数的值,如果参数的值和某个case后面的常量表达式相同,则执行该case语句后的若干个语句,直到遇到break语句为止。此时如果该case语句中没有break语句,将继续执行后面case中的若干个语句,直到遇到break语句为止。若没有任何一一个常量表达式与参数的值相同,则执行default后面的语句。
break的作用是跳出整个switch语句。
defult语句是可以不写的,如果它不存在,而且swich语句中表达式的值不与任何ca的常量值相同,switch则不做任何处理。
例3.8
3.3语句循环
3.3.1while循环语句
while 语句的循环方式为利用个条件来控制是否要继续反复执行这个语句。
当条件表达式的返回值为真时,则执行“8}” 中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。
例3.10
3.3.2 do...while循环语句
do...while循环语句与while循环语句类似,它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do... while循环语句则先执行一次循环后,再判断条件是否成立。也就是说d...while循环语句中“{}”中的程序段至少要被执行一次。
do.while语句与while语句的一个明显区别是d..whil语句在结尾处多了一一个分号 (;)。根据d..whie循环语句的语法特点总结出的d... while循环语句的执行流程
例3.11
3.3.3 while与do...while比较
可以通过设置起始循环条件不成立的循环语句来观察while和d...while的不同。将变量i初始值设置为0,然后循环表达式设置为i>1,显然循环条件不成立。循环体执行的是对变量j的加1运算,通过输出变量j在循环前的值和循环后的值进行比较。
例3.12
例3.13
3.3.4 for循环语句
for循环是Java程序设计中最有用的循环语句之一一。 一个 for循环可以用来重复执行某条语句,直到某个条件得到满足。
表达式1:该表达式通常是-个赋值表达式,负责设置循环的起始值,也就是给控制循环的变量赋初值。
表达式2:该表达式通常是一个关系表达式,用控制循环的变量和循环变量允许的范围值进行比较。
表达式3:该表达式通常是一一个赋值表达式,对控制循环的变量进行增大或减小。
例3.14
3.3.5 foreach语句
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而任何foreach语句都可以改写为for语句版本。foreach 并不是一个关键字, 习惯上将这种特殊的 for语句格式称之为foreach语句。foreach语向在遍历数组等方面为程序员提供了很大的方便。
例3.15
3.3.6循环语句的嵌套
例3.16
循环有for、while、do...while3种方法,这3种方法可以相互嵌套
3.4跳转语句
跳转语句包含两方面的内容,一方面是控制循环变量的变化方式,也就是让循环判断中的逻辑关系表达式变成false,从而达到终止循环的效果;一方面 是控制循环的跳转。控制循环的跳转需要用到break和contiue两个关键字,这两条跳转语句的跳转效果不同,break 是中断循环,continue是直接执行下一次循环。
例3.17
例3.18
(1)循环中的语向判断:如果j等于4时,执行break语句, 则中断了内层的循环,输出的j值最大到3为止。
(2)但是外层的循环没有受任何影响,输出的i值最大到2,正是for循环设定的最大值。
3.4.2 continue语句
continue语句是针对break语句的补充。continue 不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue语句后,首先执行循环的增量部分,然后进行条件测试。在while和do.. .while循环中,continue 语句使控制直接回到条件测试部分。
例3.20
流程图