第03章程序控制PPT讲稿.ppt
第第03章程序控制章程序控制第1页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程2/138学习目标学习目标1.理解理解Java语言中语句和块的的语法概念。语言中语句和块的的语法概念。2.掌握掌握Java语言中三种条件语句的使用,语言中三种条件语句的使用,包括包括if语句、语句、if-else语句以及语句以及switch语句,语句,理解理解break语句在语句在switch语句中的使用方法。语句中的使用方法。3.掌握掌握Java语言中三种循环语句的使用,语言中三种循环语句的使用,包括包括while语句、语句、for语句以及语句以及do语句;理解语句;理解break语句和语句和continue语句在循环语句中的语句在循环语句中的使用方法。使用方法。4.理解结构化程序设计的基本方法即自顶向理解结构化程序设计的基本方法即自顶向下逐步求精。下逐步求精。第2页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程3/138内容摘要内容摘要3.1 引言引言3.2 语句和块语句和块3.3 条件控制语句条件控制语句3.4 自顶向下,逐步求精自顶向下,逐步求精3.5 循环语句循环语句第3页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程4/138内容摘要内容摘要3.6 break和和continue语句语句3.7 实例实例第4页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程5/138内容摘要内容摘要3.1 引言引言3.2 语句和块语句和块3.3 条件控制语句条件控制语句3.4 自顶向下,逐步求精自顶向下,逐步求精3.5 循环语句循环语句第5页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程6/1383.1 引言引言 我们知道,程序是用来控制计算行为我们知道,程序是用来控制计算行为的,而我们讨论过的程序所蕴涵的计的,而我们讨论过的程序所蕴涵的计算步骤或计算方法即算法,体现出的算步骤或计算方法即算法,体现出的是一种顺序控制行为,它控制程序由是一种顺序控制行为,它控制程序由上往下一句一句地执行,且每一句执上往下一句一句地执行,且每一句执行一次。行一次。如求解一次方程的算法:如求解一次方程的算法:1)输入)输入ax+b=0中中a和和b的值;的值;第6页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程7/1383.1 引言引言 2)将解)将解-b/a 赋值给解变量赋值给解变量x;3)将解)将解x明显地显示在屏幕上。明显地显示在屏幕上。它体现出的控制行为是由上(开始)往下它体现出的控制行为是由上(开始)往下顺次地一句一句执行,且每一句执行一次。顺次地一句一句执行,且每一句执行一次。为了更好地体现这种控制行为的特征,为了更好地体现这种控制行为的特征,我们还可以采用所谓的我们还可以采用所谓的流程图流程图来来第7页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程8/1383.1 引言引言 描述算法,下面是上述算法的流程图描述形描述算法,下面是上述算法的流程图描述形式,如图式,如图3-1所示。所示。第8页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程9/1383.1 引言引言 与自然语言描述形式相比较,流程图描述中增加与自然语言描述形式相比较,流程图描述中增加了专门的开始标志和结束标志,它们分别用明显了专门的开始标志和结束标志,它们分别用明显标注标注“开始开始”和和“结束结束”的椭圆框表示;输入的椭圆框表示;输入输出指令或操作使用有明确说明的平行四边输出指令或操作使用有明确说明的平行四边形框来表示;计算指令或操作用有明确说明形框来表示;计算指令或操作用有明确说明的矩形框来表示;控制流由上往下,由方向的矩形框来表示;控制流由上往下,由方向箭形象地指明,即执行时,从箭形象地指明,即执行时,从“开始开始”出发,出发,顺着箭头方向向下,一个框一个框地顺次执行,顺着箭头方向向下,一个框一个框地顺次执行,直到直到“结束结束”为止。为止。第9页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程101383.1 引言引言 然而,在实际应用中,更多的计算程序然而,在实际应用中,更多的计算程序仅用顺序控制是远远不够的,还必须用仅用顺序控制是远远不够的,还必须用所谓的条件控制和循环控制。因为在实所谓的条件控制和循环控制。因为在实际问题求解中通常都包含有顺序行为、际问题求解中通常都包含有顺序行为、条件选择行为和循环行为,它们需要我条件选择行为和循环行为,它们需要我们用程序或算法来描述或控制。们用程序或算法来描述或控制。本章主要介绍本章主要介绍Java语言中各种条件控制语言中各种条件控制语句和循环控制语句。语句和循环控制语句。第10页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程11138内容摘要内容摘要3.1 引言引言3.2 语句和块语句和块3.3 条件控制语句条件控制语句3.4 自顶向下,逐步求精自顶向下,逐步求精3.5 循环语句循环语句第11页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程121383.2 语句和块语句和块 在介绍条件控制语句和循环控制语句前,在介绍条件控制语句和循环控制语句前,我们先来介绍我们先来介绍Java语言的语句和块的概语言的语句和块的概念。念。在在Java语言中,语句可分两种语言中,语句可分两种:一种是用来表达操作的,例如,本章一种是用来表达操作的,例如,本章将介绍的各种条件语句和循环语句都将介绍的各种条件语句和循环语句都属于这里介绍的语句范畴;属于这里介绍的语句范畴;另一种是用来定义数据的,例如,各另一种是用来定义数据的,例如,各种变量声明语句等。种变量声明语句等。第12页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程131383.2 语句和块语句和块 一般地,一般地,Java语句都使用分号(语句都使用分号(;)结)结束。例如,下列三条语句都是合法的语束。例如,下列三条语句都是合法的语句:句:int a,b;a=23;b=12;在在Java语言中,把什么都没有只有一个语言中,把什么都没有只有一个分号的特殊情形称为分号的特殊情形称为空语句空语句。例如,下。例如,下列是空语句:列是空语句:第13页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程141383.2 语句和块语句和块;许多时候,我们需要把多条语句当做一条许多时候,我们需要把多条语句当做一条语句来使用,此时就要使用花括号把它们语句来使用,此时就要使用花括号把它们括起来。这种使用花括号括起来的多条语括起来。这种使用花括号括起来的多条语句称为句称为块块。例如,下列是一个块:。例如,下列是一个块:int a,b;a=23;b=12;第14页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程151383.2 语句和块语句和块 注:一个块是一条语句,所以,块中也注:一个块是一条语句,所以,块中也可以包含其他块。可以包含其他块。第15页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程16138内容摘要内容摘要3.1 引言引言3.2 语句和块语句和块3.3 条件控制语句条件控制语句3.4 自顶向下,逐步求精自顶向下,逐步求精3.5 循环语句循环语句第16页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程171383.3 条件控制语句条件控制语句 在在Java语言中条件语句可有三种形式:语言中条件语句可有三种形式:if语句语句if-else语句语句switch语句。语句。第17页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程181383.3.1 if语句语句 Java语言的语言的if语句格式为:语句格式为:if()其功能为:如果其功能为:如果为为true,那么执行那么执行;否则跳过;否则跳过(即(即不执行不执行),控制转到下一条语句。),控制转到下一条语句。用流程图工具表示其执行流程如图用流程图工具表示其执行流程如图3-2(a)所示。)所示。第18页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程191383.3.1 if语句语句 第19页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程201383.3.1 if语句语句 在在if语句格式中,语句格式中,具有一般性,具有一般性,即它可以表示空语句,例如:即它可以表示空语句,例如:if(a 0);上述语句如图上述语句如图3-2(b)所示。)所示。第20页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程211383.3.1 if语句语句 第21页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程221383.3.1 if语句语句 它也可以表示单个语句,例如:它也可以表示单个语句,例如:if(a!=0)x=-b/a;上述语句如图上述语句如图3-2(c)所示。)所示。第22页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程231383.3.1 if语句语句 第23页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程241383.3.1 if语句语句 它还可以表示块语句,例如:它还可以表示块语句,例如:if(a!=0)Q=sqrt(b*b 4*a*c);x1=(-b+Q)/(2*a);x2=(-b-Q)/(2*a);上述语句如图上述语句如图3-2(d)所示。)所示。第24页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程251383.3.1 if语句语句 第25页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程261383.3.1 if语句语句 例例3-1 扩展例扩展例2-5,使求解一元一次方,使求解一元一次方程时包括无穷解和无解的情形。程时包括无穷解和无解的情形。解答:根据题意,求解一元一次方程需要解答:根据题意,求解一元一次方程需要考虑三种情形:考虑三种情形:a不等于不等于0时、时、a等于等于0且且b等于等于0时以及时以及a等于等于0且且b不等于不等于0时,时,这三种情形都是互斥的,即任何时候只这三种情形都是互斥的,即任何时候只能有一种情形成立,而每一种情形成立能有一种情形成立,而每一种情形成立时采取的操作各不相同。使用的程序流时采取的操作各不相同。使用的程序流程图表示它的执行流程如图程图表示它的执行流程如图3-3所示所示第26页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程271383.3.1 if语句语句 第27页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程281383.3.1 if语句语句 第28页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程291383.3.1 if语句语句 对应的对应的Java程序如下:程序如下:1/*求解一元一次方程求解一元一次方程:ax+b=02 要求:分三种情形进行求解要求:分三种情形进行求解*/3 import javax.swing.JOptionPane;4 public class lineEquation45 6 public static void main(String args)第29页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程301383.3.1 if语句语句 7 8 double a,b,x;9 String string_a,string_b,result;10 string_a=JOptionPane.showInputDialog(输入方程中的一次项系数输入方程中的一次项系数);11 a=Double.parseDouble(string_a);12 string_b=JOptionPane.showInputDialog(输入方程的常数项输入方程的常数项);13 b=Double.parseDouble(string_b);14 if(a!=0)/有解有解15 x=-b/a;第30页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程311383.3.1 if语句语句 16 JOptionPane.showMessageDialog(null,方程方程+a+x+b+=0的解为的解为:x=+x,解方程解方程,JOptionPane.INFORMATION_MESSAGE);17 18 if(a=0&b=0)/有无穷解有无穷解19 JOptionPane.showMessageDialog(null,方程方程+a+x+b+=0的解为的解为:无穷解无穷解,解方程解方程,JOptionPane.INFORMATION_MESSAGE);20 第31页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程321383.3.1 if语句语句 21 if(a=0&b!=0)/无解无解22 JOptionPane.showMessageDialog(null,方方程程+a+x+b+=0的解为的解为:无解无解,解方程解方程,JOptionPane.INFORMATION_MESSAGE);23 24 25 第32页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程331383.3.1 if语句语句 例子说明:例子说明:当当a不为不为0时(即第时(即第14句中布尔表达式为句中布尔表达式为true)执行第执行第15、16语句,此时方程有一个解;语句,此时方程有一个解;当当a为为0且且b也为也为0时(即第时(即第18句中布尔表达式为句中布尔表达式为true)执行第)执行第19语句,此时方程有无穷个解;语句,此时方程有无穷个解;当当a为为0且且b不为不为0时(即第时(即第21句中布尔表达式为句中布尔表达式为true)执行第)执行第22语句,此时方程无解。语句,此时方程无解。例例3-2 求解一元二次方程。求解一元二次方程。解答:求解方程时,首先计算根的判别式,然解答:求解方程时,首先计算根的判别式,然第33页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程341383.3.1 if语句语句 后判断该判别式,如果大于后判断该判别式,如果大于0,则计算二,则计算二个不相等的解;个不相等的解;如果等于如果等于0,则计算二个相等的解;,则计算二个相等的解;如果小于如果小于0,则无实数解。,则无实数解。使用流程图表示其执行流程如图使用流程图表示其执行流程如图3-4所示。所示。第34页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程351383.3.1 if语句语句 第35页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程361383.3.1 if语句语句 第36页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程371383.3.1 if语句语句 对应的对应的Java程序如下:程序如下:1 /*求解一元二次方程求解一元二次方程:ax2+bx+c=0*/2 import javax.swing.JOptionPane;3 public class quadratic_Equation4 5 public static void main(String args)6 7 double a,b,c,D,x1,x2;第37页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程381383.3.1 if语句语句 8 String string_a,string_b,string_c,result;9 string_a=JOptionPane.showInputDialog(输入方程中的二次项系数输入方程中的二次项系数);10 a=Double.parseDouble(string_a);11 string_b=JOptionPane.showInputDialog(输入方程中的一次项系数输入方程中的一次项系数);12 b=Double.parseDouble(string_b);13 string_c=JOptionPane.showInputDialog(输入方程的常数项输入方程的常数项);第38页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程391383.3.1 if语句语句 14 c=Double.parseDouble(string_c);15 D=b*b-4*a*c;/计算根的判别式计算根的判别式16 if(D 0)/有二个不相等的实数解有二个不相等的实数解17 x1=(-b+Math.sqrt(D)/(2*a);18 x2=(-bMath.sqrt(D)/(2*a);19 JOptionPane.showMessageDialog(null,方方程程+a+x*x+b+x+c+=0的解为的解为:x1=+x1+,x2=+x2,解方程解方程,JOptionPane.INFORMATION_MESSAGE);第39页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程401383.3.1 if语句语句 20 21 if(D=0)/有二个相等的实数解有二个相等的实数解22 x1=x2=-b/(2*a);23 JOptionPane.showMessageDialog(null,方方程程+a+x*x+b+x+c+=0的解为的解为:x1=x2=+x1,解方程解方程,JOptionPane.INFORMATION_MESSAGE);24 第40页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程411383.3.1 if语句语句 25 if(D 0)/无实数解无实数解26 JOptionPane.showMessageDialog(null,方方程程+a+x*x+b+x+c+=0无实数解无实数解,解方程解方程,JOptionPane.INFORMATION_MESSAGE);27 28 29 例子说明:例子说明:第41页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程421383.3.1 if语句语句 在在Math类中提供了许多方法,用于计类中提供了许多方法,用于计算数学函数,其中算数学函数,其中sqrt用来计算正平方用来计算正平方根;而本题第根;而本题第17、18行正是使用行正是使用sqrt计算平方根的具体例子。计算平方根的具体例子。第42页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程431383.3.2 if-else语句语句 Java语言的语言的if-else语句格式为:语句格式为:if()else 其功能为:其功能为:第43页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程441383.3.2 if-else语句语句 如果如果为为true,那么执行,那么执行(不执行(不执行);否则执行);否则执行(不执行(不执行)。)。用流程图工具表示其执行流程如图用流程图工具表示其执行流程如图3-5(a)所示。)所示。第44页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程451383.3.2 if-else语句语句 第45页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程461383.3.2 if-else语句语句 与与if语句类似,在语句类似,在if-else语句格式中,语句格式中,和和也具有一般性,它也具有一般性,它们既可以表示空语句,也可以表示单个们既可以表示空语句,也可以表示单个语句,还可以表示块语句。语句,还可以表示块语句。例如,下列三条例如,下列三条if-else语句都是合法的:语句都是合法的:if(D=0)DR=Math.sqrt(D);第46页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程471383.3.2 if-else语句语句 x1=(-b+DR)/(2*a);x2=(-b-DR)/(2*a);result=x1=+x1+,x2=+x2;else result=方程无实数解方程无实数解!;上述语句如图上述语句如图3-5(b)所示。)所示。第47页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程481383.3.2 if-else语句语句 第48页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程491383.3.2 if-else语句语句 我们也可以使用两条我们也可以使用两条if语句来表示一条语句来表示一条if-else语语句,如图句,如图3-6所示。所示。第49页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程501383.3.2 if-else语句语句 例例3-3 编写一程序,当用户输入一个数编写一程序,当用户输入一个数时,它输出该数的平方根。时,它输出该数的平方根。解答:当用户输入的是非负正数时,使解答:当用户输入的是非负正数时,使用用Math类中类中sqrt方法计算平方根;当方法计算平方根;当用户输入的是负数时,则提醒用户。使用户输入的是负数时,则提醒用户。使用流程图表示其执行流程如图用流程图表示其执行流程如图3-7所示所示第50页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程511383.3.2 if-else语句语句 第51页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程521383.3.2 if-else语句语句 相应程序如下:相应程序如下:1/*计算平方根计算平方根*/2 import javax.swing.JOptionPane;3 public class print_Root4 5 public static void main(String args)6 7 double x,y;第52页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程531383.3.2 if-else语句语句 8 String string_x;9 string_x=JOptionPane.showInputDialog(输入一个数输入一个数);10 x=Double.parseDouble(string_x);11 if(x=0)12 y=Math.sqrt(x);13 JOptionPane.showMessageDialog(null,平方根平方根:+y,计算平方根计算平方根,JOptionPane.INFORMATION_MESSAGE);第53页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程541383.3.2 if-else语句语句 14 15 else16 JOptionPane.showMessageDialog(null,你输入了一个负数你输入了一个负数,计算平方根计算平方根,JOptionPane.INFORMATION_MESSAGE);17 18 第54页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程551383.3.2 if-else语句语句 例例3-4 使用使用if-else语句改写语句改写2.10.3节的的问题求解。节的的问题求解。解答:求解程序如下:解答:求解程序如下:1 /*求规则图形面积。规则图形包括求规则图形面积。规则图形包括2 圆、三角形、矩形和梯形等圆、三角形、矩形和梯形等*/3 import javax.swing.JOptionPane;4 public class PlaneFigureArea35 6 public static void main(String args)7 final double PI=3.14159;8 int flag;第55页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程561383.3.2 if-else语句语句 9 double a,b,c,S;10 String str_a=,str_b=,str_c=,str_flag,result;11 str_flag=JOptionPane.showInputDialog(0.圆圆,1.三角形三角形,2.矩形矩形,3.梯形梯形);12 flag=Integer.parseInt(str_flag);13 if(flag=0)/需要计算圆面积需要计算圆面积14 str_a=JOptionPane.showInputDialog(输输入圆的半径入圆的半径);15 a=Double.parseDouble(str_a);第56页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程571383.3.2 if-else语句语句 16 S=a*a*PI;/计算圆面积计算圆面积17 result=所求圆面积为所求圆面积为;18 19 else if(flag=1)/需要计算三角形面积需要计算三角形面积20 str_a=JOptionPane.showInputDialog(输入三角形底边长输入三角形底边长);21 str_b=JOptionPane.showInputDialog(输入三输入三角形的高度角形的高度);22 a=Double.parseDouble(str_a);第57页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程581383.3.2 if-else语句语句 23 b=Double.parseDouble(str_b);24 S=a*b/2;/计算三角形面积计算三角形面积25 result=所求三角形面积为所求三角形面积为;26 27 else if(flag=2)/需要计算矩形面积需要计算矩形面积28 str_a=JOptionPane.showInputDialog(输入矩形长输入矩形长);29 str_b=JOptionPane.showInputDialog(输入矩形宽输入矩形宽);30 a=Double.parseDouble(str_a);第58页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程591383.3.2 if-else语句语句 31 b=Double.parseDouble(str_b);32 S=a*b;/计算矩形面积计算矩形面积33 result=所求矩形面积为所求矩形面积为;34 35 else /需要计算梯形面积需要计算梯形面积36 str_a=JOptionPane.showInputDialog(输入梯形上底长输入梯形上底长);37 str_b=JOptionPane.showInputDialog(输输入梯形下底长入梯形下底长);第59页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程601383.3.2 if-else语句语句 38 str_c=JOptionPane.showInputDialog(输输入梯形高入梯形高);39 a=Double.parseDouble(str_a);40 b=Double.parseDouble(str_b);41 c=Double.parseDouble(str_c);42 S=(a+b)*c/2;/计算梯形面积计算梯形面积43 result=所求梯形面积为所求梯形面积为;44 第60页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程611383.3.2 if-else语句语句 45 JOptionPane.showMessageDialog(null,result+S,求面积求面积,JOptionPane.INFORMATION_MESSAGE);46 47 第61页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程621383.3.3 条件语句的嵌套条件语句的嵌套 if和和if-else本身也是本身也是Java语句,而语句,而if或或if-else语句中的语句可以是任何语句中的语句可以是任何Java语言的合法语句,语言的合法语句,所以所以if和和if-else语句中的语句也可以是语句中的语句也可以是if或或if-else语句。这种条件语句中又包含其他条件语句语句。这种条件语句中又包含其他条件语句的情形称为的情形称为嵌套条件语句嵌套条件语句。例如,下列是一条合。例如,下列是一条合法的嵌套条件语句:法的嵌套条件语句:if(a!=0)x=-b/a;System.out.println(方程的解为方程的解为:x=+x);第62页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程631383.3.3 条件语句的嵌套条件语句的嵌套 else/此时,此时,a等于等于0 if(b=0)/此时,此时,a等于等于0且且b等于等于0 System.out.println(方程有无穷个解方程有无穷个解);else/此时,此时,a等于等于0且且b不等于不等于0 System.out.println(方程无解方程无解);第63页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程641383.3.3 条件语句的嵌套条件语句的嵌套 注:由于注:由于if-else语句在语法上本身是作为语句在语法上本身是作为“一条一条语句语句”来使用的,所以,上述语句中后面的花括来使用的,所以,上述语句中后面的花括号可以省略,而不影响其作用,即上述语句的另号可以省略,而不影响其作用,即上述语句的另一种等价形式为:一种等价形式为:if(a!=0)x=-b/a;System.out.println(方程的解为方程的解为:x=+x);第64页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程651383.3.3 条件语句的嵌套条件语句的嵌套 else/此时,此时,a等于等于0 if(b=0)/此时,此时,a等于等于0且且b等于等于0 System.out.println(方程有无穷个解方程有无穷个解);else/此时,此时,a等于等于0且且b不等于不等于0 System.out.println(方程无解方程无解);当当if-else语句中语句中else后面嵌套的是后面嵌套的是if-else语句,语句,且如此嵌套多次时,其书写使用特别形式,如图且如此嵌套多次时,其书写使用特别形式,如图3-8所示,其中图(所示,其中图(a)是更好的书写方法。)是更好的书写方法。第65页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程661383.3.3 条件语句的嵌套条件语句的嵌套 第66页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程671383.3.3 条件语句的嵌套条件语句的嵌套 例例3-5 使用使用if-else求解一元二次方程。求解一元二次方程。解答:所求程序如下:解答:所求程序如下:1 /*求解一元二次方程求解一元二次方程:ax2+bx+c=0*/2 import javax.swing.JOptionPane;3 public class quadratic_Equation24 5 public static void main(String args)6 7 double a,b,c,D,x1,x2;第67页,共199页,编辑于2022年,星期日楚雄师范学院计算机科学系楚雄师范学院计算机科学系 java程序设计课程程序设计课程681383.3.3 条件语句的嵌套条件语句的嵌套 8 String string_a,string_b,string_c,result;9 string_a=JOptionPane.showInputDialog(输入方输入方程中的二次项系数程中的二次项系数);10 a=Double.parseDouble(str