【文档说明】Java语言程序设计3.ppt,共(58)页,258.019 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-2309.html
以下为本文档部分文字说明:
Java语言程序设计第3章基本控制结构2022/11/122上章回顾标识符和关键字数据类型、常量和变量运算符和表达式2022/11/123本章总体纲要第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五
部分:跳转语句2022/11/124学习目标理解程序控制结构掌握程序基本控制语句:选择结构:if,switch循环结构for,while,do--while,了解跳转语句break,continue.2022/11/125本章总体纲要第一部分:语句及程序结构第二部
分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/1263.1语句及程序结构语句用来向计算机系统发出操作指令。程序由一系列语句组成。Java中常见语句有如下五种:表达式语句:表达式;如:total=math+phys+chem;空语句:;2022/1
1/127语句及程序结构复合语句:用“{}”将多条语句括起来,在语法上作为1条语句使用。如:{z=x+y;t=z/10;}方法调用语句:方法名(参数);如:System.out.println(“JavaLanguage”);
控制语句:完成一定的控制功能,包括选择语句、循环语句和转移语句。如:break;2022/11/128本章总体纲要第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/1293.2顺序结构顺序结构是最简
单的一种程序结构,程序按照语句的书写次序顺序执行。2022/11/1210例3-1:计算太阳和地球之间的万有引力publicclassForce{publicstaticvoidmain(Stri
ngargs[]){doubleg,mSun,mEarth,f;g=6.66667E-8;mSun=1.987E33;mEarth=5.975E27;f=g*mSun*mEarth/(1.4
95E13*1.495E13);System.out.println("Theforceis"+f);}}程序运行结果如下:Theforceis3.5413E272022/11/1211例3-2:将华氏温度转化为摄氏温度
publicclassConversion{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.111112022/11/1212例3-3:求解方程的根xpublicclassRoot{publicstat
icvoidmain(Stringargs[]){floata,b,x;a=Float.parseFloat(args[0]);b=Float.parseFloat(args[1]);x=-b/a;
System.out.println("a="+a);System.out.println("b="+b);System.out.println("x="+x);}}0bax2022/11/1213如果在命令行键入:javaRoot2.06.0运行程序。2.0和
6.0分别作为第1和第2个参数传递给a和b。屏幕输出结果如下:a=2.0b=6.0x=-3.02022/11/1214例3-3:求解方程的根xpublicclassRoot{publicstaticvoidm
ain(Stringargs[])throwsIOException{floata,b,x;BufferedReaderbr=newBufferedReader(newInputStreamReader(Syste
m.in));//声明输入缓冲区a=Float.parseFloat(br.readLine());b=Float.parseFloat(br.readLine());x=-b/a;System.out.println(“a="+a);System.out.prin
tln(“b="+b);System.out.println(“c="+c);}}0bax2022/11/1215本章总体纲要第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/12
163.3选择结构Java语句提供了两条基本的分支选择语句if和switch。if语句应用在“二选一”的条件下,而switch语句应用在“多选一”的条件下。它们都是对条件表达式进行判断,针对不同的结果,决定转向要执行的Java语句。2022/11/1
2173.3.1if语句if(布尔表达式)语句或者if(布尔表达式)语句1else语句2布尔表达式语句truefalse布尔表达式语句2falsetrue语句12022/11/1218例3-4:通过命令行输入2个
整数,输出较小者publicclassMinNum{publicstaticvoidmain(Stringargs[]){intx,y,min;x=Integer.parseInt(args[0]);y=Integer.parseIn
t(args[1]);if(x<y)min=x;elsemin=y;System.out.println("x="+x);System.out.println("y="+y);System.out.println("min="+min);}}2022/
11/1219例3-5:求解方程(a!=0)的根publicclassRoot3_5{publicstaticvoidmain(Stringargs[]){floata,b,x;a=Float.pa
rseFloat(args[0]);b=Float.parseFloat(args[1]);if(Math.abs(a)>0.000001f){x=-b/a;System.out.println("x="+x);}
}}0bax2022/11/1220if语句嵌套if语句中可以包含if语句,形成if语句的嵌套。if(布尔表达式1)语句1elseif(布尔表达式2)语句2…elseif(布尔表达式n)语句n2022/11/1221例
3-6分段函数publicclassFunction{publicstaticvoidmain(Stringargs[]){floatx,y;x=Float.parseFloat(args[0]);if(x<0)y=0;elseif(x>0&&x<=10)
y=x;elseif(x>10&&x<=20)y=10;elsey=-0.5f*x+20;System.out.println("x="+x);System.out.println("y="+
y);}}2022/11/12223.3.2Switch语句switch(表达式){case值1:语句块1;break;case值2:语句块2;break;………case值n:语句块n;break;defaul
t:语句块n+1;}2022/11/1223例3-7:通过命令行输入1~12之间的1个整数,输出相应月份的英文单词publicclassMonth1{publicstaticvoidmain(Stringargs[]){shortmonth;mont
h=Short.parseShort(args[0]);switch(month){case1:System.out.println(“January”);break;case2:System.out.println(“February”);break;case3:
System.out.println(“March”);break;case4:System.out.println(“April”);break;2022/11/1224case5:System.out.println(“May”);break;case6:System.out.p
rintln(“June”);break;case7:System.out.println(“July”);break;case8:System.out.println(“August”);break;case9:System.out.println(“September”);br
eak;case10:System.out.println(“October”);break;case11:System.out.println(“November”);break;case12:System.out.println(“December”);}}}2022/1
1/1225例3-8:将百分制成绩转化为优秀、良好、中等、及格和不及格的5级制成绩。标准为:优秀:90~100分;良好:80~89分;中等:70~79分;及格:60~69分;不及格:60分以下。2022/11/1226p
ublicclassLevel{publicstaticvoidmain(Stringargs[]){shortnewGrade,grade;grade=Short.parseShort(args[0]);switch(grade/10){case10:case9:newGrad
e=1;break;case8:newGrade=2;break;case7:newGrade=3;break;case6:newGrade=4;break;default:newGrade=5;}2022/11/1227System.out.print(grade
);switch(newGrade){case1:System.out.println(",优秀");break;case2:System.out.println(",良好");break;case3:System.out.println(",中等");break
;case4:System.out.println(",及格");break;case5:System.out.println(",不及格");break;}}}2022/11/1228本章总体纲要第一部分:语句及程序结构第二部分:顺
序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/12293.4循环结构循环语句的作用是在一定条件下,反复执行一段程序代码,被反复执行的程序称为循环体。Java提供的循环语句有:while语句、do…while语句和for语句。2022/11/1230
3.4.1while语句while(布尔表达式){循环体}含义:布尔表达式表示循环执行的条件;循环体可以是一条简单语句,也可以是复合语句;当布尔表达式为true时,重复执行循环体。truefalse布尔表达式?
循环体2022/11/1231例3-9:计算10!publicclassFactorial{publicstaticvoidmain(Stringargs[]){inti;doubles;i=1;s=1;while(
i<=10){s=s*i;i=i+1;}System.out.println("10!="+s);}}2022/11/12323.4.2do……while语句Do{循环体}while(布尔表达式);☞含义:重复执行循环体,直到布尔表达式为false。至少执行一次循环体。t
rue循环体布尔表达式?false2022/11/1233例3-10:计算1+3+5+…+99publicclassSum1{publicstaticvoidmain(Stringargs[]){inti=1,s=0
;do{s=s+i;i=i+2;}while(i<100);System.out.println("sum="+s);}}2022/11/1234例3-11:计算1~50之间的奇数和与偶数
和publicclassSum2{publicstaticvoidmain(Stringargs[]){inti,oddSum,evenSum;i=1;oddSum=0;evenSum=0;do{if(i%2==0)//如果i是偶数
evenSum+=i;//求偶数和2022/11/1235else//如果i是奇数oddSum+=i;//求奇数和i++;}while(i<=50);//判断i的值是否在1~50之间Syst
em.out.println("Oddsum="+oddSum);System.out.println("Evensum="+evenSum);}}2022/11/12363.4.3for语句for(表达式1;表达式2
;表达式3){循环体}表达式1:循环初值;表达式2:布尔表达式,判断循环是否继续;表达式3:修改循环变量值。true表达式1表达式2表达式3false循环体2022/11/1237例3-12:计算1~100之间的整数和publicclassSum3{publicstaticvoidmai
n(Stringargs[]){inti,s=0;for(i=1;i<=100;i++)s+=i;System.out.println("sum="+s);}}2022/11/1238例3-13:
求Fibonacci数列中的前20项publicclassFibonacci{publicstaticvoidmain(Stringargs[]){longf1=1,f2=1;for(inti=1;i<=10;i++){System
.out.print(f1+""+f2+"");f1=f1+f2;f2=f1+f2;}}}2022/11/1239例3-14:判断素数素数是指除1及自身外,不能被其它数整除的自然数。对于一个自然数k,需要使用2~k-1
之间的每个整数进行测试,如果不能找到一个整数i,使k能被i整除,则k是素数;如果能找到某个整数i,使k能被i整除,则k不是素数。2022/11/1240publicclassPrime{publicstaticvoidmain(Stringargs[])
{shorti,k;k=Short.parseShort(args[0]);for(i=2;i<=k-1;i++)if(k%i==0)break;if(i==k)System.out.printl
n(k+"isaprime.");elseSystem.out.println(k+"isnotaprime.");}}2022/11/12413.4.4多重循环如果循环语句的循环体中又包含循环语句,就形成多重循环结构
,称为循环嵌套。例如:for(;;)//外循环开始{….for(;;)//内循环开始{……}//内循环结束while(condition)//内循环开始{…….}//内循环结束}//外循环结束2022/11/1242例3-15:计算输出1!
,2!,…,5!以及它们的和。publicclassFactorials{publicstaticvoidmain(Stringargs[]){inti,j;longs=0,k;for(i=1;i<=5;i++)//外循环开始{k=1;for(j=1
;j<=i;j++)//内循环开始k=k*j;//内循环体,内循环结束System.out.println(i+"!="+k);s=s+k;}//外循环结束System.out.println("Totalsum="+s);}}
2022/11/1243例3-16:求2~50之间的所有素数。publicclassPrimes{publicstaticvoidmain(Stringargs[]){finalintMAX=50;inti,k;booleanyes;for(k=2;k<MAX;k++){ye
s=true;i=2;2022/11/1244while(i<=k-1&&yes){if(k%i==0)yes=false;i++;}if(yes)System.out.print(k+"");}}}2022/1
1/1245本章总体纲要第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/1246跳转语句break语句:使程序的流程从一个语句块内部跳转出来。通常
在switch和循环语句中使用。continue语句:只在循环语句中使用。其作用是终止当前这一轮的循环,跳过本轮循环剩余的语句,直接进入下一轮循环。2022/11/1247break语句break语句:提
前结束循环。用法一:do{程序语句1;if(条件2){break;}程序语句2;}while(条件1);2022/11/1248break语句例子:intlimit=20;//Sumfrom1tothisvalu
eintsum=0;//Accumulatesuminthisvariableinti=1;//Loopcounterwhile(i<=limit){if(sum>=100){break;}sum+=i++;}System
.out.println(“sum=”+sum);2022/11/1249break语句用法二:标号:do{程序语句;if(条件2){break标号;}程序语句;}while(条件1);2022/11/1250break语句例子:intlimit=20;//S
umfrom1tothisvalueintsum=0;//Accumulatesuminthisvariableinti=1;//Loopcounterloop:while(i<=limit){for(i
ntj=1;j<10;j++){if(sum>=100){breakloop;}sum+=j;}sum+=i++;}System.out.println(“sum=”+sum);2022/11/1251continue语句continue语句:跳过下面的语句,继续循环。用法一:While(
条件1){程序语句;if(条件2){continue;}程序语句;}2022/11/1252continue语句例子:intlimit=20;//Sumfrom1tothisvalueintsum=0;//Accumulatesumin
thisvariableinti=1;//Loopcounterwhile(i<=limit){if(i%3==0){i++;continue;}sum+=i++;}System.out.println(“sum=”+sum);2022/11/125
3continue语句用法二:标号:While(条件1){程序语句;if(条件2){continue标号;}程序语句;}2022/11/1254continue语句例子intlimit=20;//Sumfr
om1tothisvalueintsum=0;//Accumulatesuminthisvariableinti=1;//Loopcountertest:while(i<=limit){if(i%3==0){i++
;continuetest;}sum+=i++;}System.out.println(“sum=”+sum);2022/11/1255例如3-14publicclassPrime{publicstaticvoidmain(Stringargs[]){shorti,k;k=
Short.parseShort(args[0]);for(i=2;i<=k-1;i++)if(k%i==0)break;if(i==k)System.out.println(k+"isaprime.");elseSystem.out.print
ln(k+"isnotaprime.");}}2022/11/1256例:找素数publicclassPrimeNumber{publicstaticvoidmain(Stringargs[]){inti,j,k;booleanflag;for(i=2;
i<=50;i++){flag=true;k=i/2;for(j=2;j<=k;j++){if(i%j==0)//如果该数可以整除其余数,则不可能是质数{flag=false;break;}}if(flag)System.out.print(i+"");}}}2022/11/1
257本章小结第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/1258学习目标理解程序控制结构掌握程序基本控制语句:选择结构:if,switch循环结构for,w
hile,do--while,了解跳转语句break,continue.