版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三讲流程控制演示文稿现在是1页\一共有37页\编辑于星期四(优选)第三讲流程控制现在是2页\一共有37页\编辑于星期四语句语句,Statement向计算机系统发出操作的代码程序由一系列语句组成,语句以“;”结束Java语句类型表达式语句,如:total=a+b;空语句,只有一个“;”复合语句,用“{}”将多条语句括起来作为一条语句使用
{z=x+y;t=z/10;}方法调用语句:方法名(参数);如:
System.out.println(“JavaLanguage”);控制语句,完成一定的控制功能,包括选择语句循环语句转移语句“//”是单行注释符,仅对当前行有效多行注释用”/*”开始,已”*/”结束现在是3页\一共有37页\编辑于星期四publicclassForce{//
计算太阳和地球之间的万有引力
publicstaticvoidmain(Stringargs[]){doubleg,mSun,mEarth,f;g=6.66667E-8;
mSun=1.987E33;
mEarth=5.975E27;
f=g*mSun*mEarth/(1.495E13*1.495E13);System.out.println("Theforceis"+f);}}顺序结构Demo1,【例3-1】程序运行结果如下:Theforceis3.5413E27现在是4页\一共有37页\编辑于星期四顺序结构Demo2,【例3-2】//华氏温度转换为摄氏温度:c=5(F-32)/9publicclassConversion{publicstaticvoidmain(Stringargs[]){
floatf,c;f=70.0f;c=5*(f-32)/9;System.out.println("Fahrenheit="+f);System.out.println("Centigrade="+c);}}程序运行结果如下:Fahrenheit=70.0Centigrade=21.11111C=5/9*(F-32)?现在是5页\一共有37页\编辑于星期四顺序结构Demo3,【例3-3】publicclassRoot{//求解方程ax+b=0的根xpublicstaticvoidmain(Stringargs[]){
floata,b,x; a=2.0f; b=6.0f; x=-b/a; //求根
xSystem.out.println("a="+a);//OutResultSystem.out.println("b="+b);System.out.println("x="+x);}}
如何将键盘输入的数据赋值给变量a,b?程序运行结果:a=2.0b=6.0x=-3.0现在是6页\一共有37页\编辑于星期四选择结构选择结构,也叫分支结构Java分支选择语句:if语句二选一if语句扩展、if语句嵌套或switch语句多选一现在是7页\一共有37页\编辑于星期四if语句if(布尔表达式)
语句1[else
语句2]布尔表达式语句2falsetrue语句1布尔表达式语句1truefalseElse子句是可选项若有,则布尔表达式的值为true,执行语句1,否则,执行语句2若无,则布尔表达式的值为true,执行语句1,否则,执行if语句的后续语句语句1或语句2可以是单语句,也可以是复合语句等(花括号括起)现在是8页\一共有37页\编辑于星期四选择结构Demo1:【例3-4】输入2个整数,输出较小者
解题:利用Scanner类的方法输入2个整数If语句进行判断,输出较小者【例补3-1】判断某一年份是否为润年解题:输入年份数据润年判断:条件是能被4整除但又不能被100整除或能被400整除的公元年year%4==0&&year%100!=0||year%400==0现在是9页\一共有37页\编辑于星期四选择结构Demo2:[例3-5]:求解ax+b=0(a≠0)的根
解题:利用Scanner类的方法输入a,b的值若a不为0,则输出-b/a;若a=0,则输出方程无解。现在是10页\一共有37页\编辑于星期四选择结构(注意点)注意:if语句中满足或不满足条件执行的都是单语句,若有多条语句必须用花括号括起来构成一条复合语句importjava.util.*;publicclassScore{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);intscore;System.out.print("请输入成绩:");score=in.nextInt();if(score<60)System.out.print("很遗憾,没有及格。");else{System.out.print("祝贺你,通过了~");System.out.print("再见");}}}请输入成绩:56;很遗憾,没有及格。现在是11页\一共有37页\编辑于星期四if语句扩展形式if(布尔表达式1)
语句1elseif(布尔表达式2)语句2
……elseif(布尔表达式n)
语句n[else
语句n+1]从上往下依次判断条件某个布尔表达式的值为true,就执行相应的语句不再判断其余的条件,转而执行if语句的后续语句条件之间相互排斥现在是12页\一共有37页\编辑于星期四importjava.util.Scanner;publicclassFunction{publicstaticvoidmain(Stringargs[]){Scannerin=newScanner(System.in);floatx,y;x=in.nextFloat();
if(x<=0)y=0;
elseif
(x>0&&x<=10)y=x;
elseif
(x>10&&x<=20)y=10;
else
y=0.5f*x+20;System.out.println("x="+x);System.out.println("y="+y);}}例3-6分段函数xyx<=000<x≤10x10<x≤201020<x0.5x+20现在是13页\一共有37页\编辑于星期四Demo【例3-8】将百分制成绩转化为优秀、良好、中等、及格和不及格的5级制成绩。标准为:
优秀:90-100分;
良好:80-89分;
中等:70-79分;
及格:60-69分;
不及格:60分以下现在是14页\一共有37页\编辑于星期四Demo【例】将输入的大小写字母互换,其他则不变importjava.util.Scanner;publicclassT2{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);charch;ch=(in.nextLine()).charAt(0);if(ch>='a'&&ch<='z')ch=(char)(ch-32);elseif(ch>='A'&&ch<='Z')ch=(char)(ch+32);System.out.println(ch);}}if(ch>='a'&&ch<='z')ch=(char)(ch-32);if(ch>='A'&&ch<='Z')ch=(char)(ch+32);现在是15页\一共有37页\编辑于星期四if语句嵌套if(布尔表达式1)语句1else
if(布尔表达式2) 语句2……else语句3if语句中可以包含if语句,形成嵌套if(布尔表达式1){if(布尔表达式2) 语句1[else语句2]
}else语句3注意:1、条件之间上下包含
2、else总与离它最近的if配对现在是16页\一共有37页\编辑于星期四if语句嵌套Demoimportjava.util.*;publicclassT0{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);floatx,y=0;x=in.nextFloat();if(x<2)if(x<1)y=x+2;elsey=x*2;System.out.println("y="+y);}}1.5y=3.0{}y=0.0现在是17页\一共有37页\编辑于星期四if语句嵌套Demo【例补3-2】已知一元二次方程的三个系数a,b,c,求一元二次方程ax2+bx+c=0的2个根,保留2位小数解题:当a、b、c均为零时,方程有无数解;当a、b为零,c≠0时,方程无解;当a为零,b≠0时,方程解为X=-c/b;当a≠0时,求:d=b2-4ac若d≥0,有两个不同实根X=(-b±Sqr(d))/(2a)若d<0时,有两个不同复根:X=-b/(2a)±Sqr(-d)/(2a)i注意:代码书写时采用阶梯方式,便于阅读现在是18页\一共有37页\编辑于星期四Switch语句switch(表达式){//计算表达式,得到值
case值1:语句块1;//如果表达式值为值1,执行语句块1
[break;]//终止,结束switch语句
case值2:语句块2;//如果表达式值为值2,执行语句块2
[break;]//终止,结束switch语句
………case值n:语句块n;//如果表达式值为值n,执行语句块n
[break;]//终止,结束switch语句
default://如果表达式值与值1~值n都不同,执行语句块n+1
语句块n+1;}break:终止程序以下部分的执行,执行switch语句的后续语句,若无,将继续执行后续的case子句中的语句块表达式的数据类型可以是byte、char、short和int类型,不允许是浮点数类型和long类型符合条件的case语句后跟的是语句块,而非单条语句现在是19页\一共有37页\编辑于星期四【例3-7】输入1~12之间的数字,输出对应的月份的英文名importjava.util.Scanner;public
class
Chapter37{public
static
void
main(String[]args)
{Scannerin=newScanner(System.in);
Stringstr="";switch(in.nextInt()){//根据输入的值进行多选
case1:str="January";break;
case2:str="February";break;
case3:str="March";break;
case4:str="April";break;
case5:str="May";break;
case6:str="June";break;
case7:str="July";break;
case8:str="August";break;
case9:str="September";break;
case10:str="October";break;
case11:str="November";break;
case12:str="December";break;
default:str=“TheInputError!”;}
System.out.println(str);
}}现在是20页\一共有37页\编辑于星期四多分支Demo【例3-8】将百分制成绩转化为优秀、良好、中等、及格和不及格的5级制成绩。标准为:
优秀:90-100分;
良好:80-89分;
中等:70-79分;
及格:60-69分;
不及格:60分以下多分支结构总结:if-elseif语句可实现switch语句所有的功能.if-elseif语句可以基于一个范围内的值或一个条件选择不同的操作,但switch语句当中的每个常量都必须对应一个单值现在是21页\一共有37页\编辑于星期四多分支DemopublicclassT{publicstaticvoidmain(String[]args){inta=2,b=6;switch(a+3){case5:switch(b){
default:a=a-2;
case6:a=a+2;break;}default:a=a*2;}System.out.println(a);}}输出结果:8}输出结果:4现在是22页\一共有37页\编辑于星期四循环结构循环语句在一定条件下,反复执行一段程序代码被反复执行的程序代码称为循环体。循环有两种类型:计数控制控制累计执行循环体的次数,次数到则结束循环如1+2+3+…+100或98+96+94+…+4+2事态控制由某些条件决定循环结束。如计算一系列正整数之和,遇负数停止循环。Java提供的循环语句有for语句(多用于计数控制)while语句do…while语句现在是23页\一共有37页\编辑于星期四for语句for(Exp1;Exp2;Exp3)
循环体Exp1,Exp2,Exp3指表达式1、2、3执行过程执行Exp1,给循环变量(及其它变量)赋初值;计算Exp2的值,若true,执行循环体中的语句;执行Exp3,修改循环变量的值重复计算Exp2的值,若true,执行循环体,直到Exp2的值为false注意:循环体中的语句如是多条,必须用花括号括起来trueExp1Exp
2Exp
3false循环体现在是24页\一共有37页\编辑于星期四for语句示例示例1:inti=0,s=0;for(i=1;i>10;i++)s++;System.out.println("i="+i+",s="+s);示例2:inti=0,s=0;for(i=1;i<10;i++)s++;System.out.println("i="+i+",s="+s);执行结果:i=1,s=0执行结果:i=10,s=9现在是25页\一共有37页\编辑于星期四循环控制Demo1【例3-9】计算10!10!=1*2*3*…*10【例3-10】计算1~50之间的奇数和与偶数和【例补3-3】输入一个正整数n,输出2/1+3/2+5/3+8/5+...的前n项之和,保留4位小数(不足4位时,不必用0填满4位)。解题:该序列从第2项起每一项的分子是前一项分子与分母的和分母是前一项的分子现在是26页\一共有37页\编辑于星期四循环控制Demo2【例3-13】计算Fibonacci数列中的前20项。Fibonacci数列:前两项是1、1,第三项是前二项之和,以后每一项都是前二项之和。即为:1、1、2、3、5、8、13、21、34……【例3-14】判断素数解题:素数是除了1及自身外,不能被其它数整除的自然数。对于一个自然数k,与2-(k-1)之间的每个整数进行相除如果没有一个能被整除,则k是素数;否则k不是素数注意:2是最小素数,负数、0、1都不是素数现在是27页\一共有37页\编辑于星期四while语句
语句格式:while(布尔表达式)
循环体含义:当表达式结果为true时,重复执行循环体。特点:先判断,再执行,循环可能一次也不执行truefalse逻辑表达式循环体循环体可以是单一语句,也可以是复合语句(用花括号括起)现在是28页\一共有37页\编辑于星期四do…while语句语句格式do
循环体while(布尔表达式);含义:重复执行循环体,直到布尔表达式为false。特点:先执行,再判断,循环至少执行一次
注意:两种格式循环体中至少有一条语句用以改变循环条件,否则会死循环true循环体布尔表达式false现在是29页\一共有37页\编辑于星期四循环控制Demo3【例补3-4】编程:输入一批非负数,当输入负数时,表示输入结束。求这批非负数据的最大值、最小值和平均值。【实验40006】读入1个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。现在是30页\一共有37页\编辑于星期四跳转语句break语句:使程序的流程从一个语句块内部跳转出来。通常在switch和循环语句中使用。continue语句:只在循环语句中使用。作用是终止当前这轮的循环,跳过本轮循环剩余的语句,直接进入下一轮循环。publicstaticvoidmain(String[]args){inti,sum;sum=0;for(i=1;i<=10;i++){if(i%2!=0)continue;sum=sum+i;}System.out.println("sum="+sum);}执行结果:sum=30现在是31页\一共有37页\编辑于星期四多重循环Multi-Loop例如:for(…;…;){//外循环开始
…
for(…;…;){//内循环开始
… }//内循环结束
…}//外循环结束现在是32页\一共有37页\编辑于星期四publicclassPrimes{publicstaticvoidmain(Stringargs[]){inti,j;booleanflag;
for(i=2;i<=50;i++){//外循环,i:2~50
flag=true;j=2;
while(j<=i-1&&flag){//内循环,判断素数
if(i%j==0)flag=false;j++; }
if(flag)System.out.print(i+"");}}}【例3-16】求2-50之间的素数现在是33页\一共有37页\编辑于星期四循环控制Demo3【例3-15】计算输出1!、2!、…、5!以及它们的和解题:外循环i遍历1-5内循环求每个i的阶程1!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林艺术学院《西方音乐史与欣赏Ⅱ》2021-2022学年第一学期期末试卷
- 吉林艺术学院《理性造型》2021-2022学年第一学期期末试卷
- 吉林艺术学院《歌曲写作Ⅰ》2021-2022学年第一学期期末试卷
- 吉林师范大学《专业技法基础》2021-2022学年第一学期期末试卷
- 2024年大数据平台运营合同范本
- 吉林艺术学院《建筑设计及动态表现》2021-2022学年第一学期期末试卷
- 2024年大白仓库供货合同范本
- 《供应链管理》教案 第1章 供应链管理概论
- 吉林师范大学《和声Ⅲ》2021-2022学年第一学期期末试卷
- 零售行业发货合同条款详解
- 《茶叶销售技巧》课件
- 专项施工方案(模板工程及支撑体系专项施工方案)
- 让阅读成为习惯家长会课件
- 居民自建桩安装告知书回执
- 加气站有限空间管理制度
- 中国心血管病报告2023
- 电力电子技术在新能源领域的应用
- 结婚审批报告表
- 2022江苏交通控股有限公司校园招聘试题及答案解析
- 装配式建筑预制构件吊装专项施工方案
- 绘本分享《狐狸打猎人》
评论
0/150
提交评论