【文档说明】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,cont
inue.2022/11/125本章总体纲要第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/1263.1语句及程序结构语句用来向计算机系统发出操作指令。程序由一系列语句组成。Java中常见语句有如
下五种:表达式语句:表达式;如:total=math+phys+chem;空语句:;2022/11/127语句及程序结构复合语句:用“{}”将多条语句括起来,在语法上作为1条语句使用。如:{z=x+y;t=z/10;}方法调用语句:方法名(参数);如:S
ystem.out.println(“JavaLanguage”);控制语句:完成一定的控制功能,包括选择语句、循环语句和转移语句。如:break;2022/11/128本章总体纲要第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构
第四部分:循环结构第五部分:跳转语句2022/11/1293.2顺序结构顺序结构是最简单的一种程序结构,程序按照语句的书写次序顺序执行。2022/11/1210例3-1:计算太阳和地球之间的万有引力publicclassForce{publicstaticvoidmai
n(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);}}程序运行结果如下:Theforceis3.5413E272022/11/1211例3-2:将华氏温度转化为摄氏温度publicclassConversion{publics
taticvoidmain(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{publicstaticvoidmain(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.020
22/11/1214例3-3:求解方程的根xpublicclassRoot{publicstaticvoidmain(Stringargs[])throwsIOException{floata,b,x;BufferedReaderbr=newBuff
eredReader(newInputStreamReader(System.in));//声明输入缓冲区a=Float.parseFloat(br.readLine());b=Float.parseFloa
t(br.readLine());x=-b/a;System.out.println(“a="+a);System.out.println(“b="+b);System.out.println(“c="+c);}}0bax2022/11/1215本章总体纲要第一部分:语
句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/12163.3选择结构Java语句提供了两条基本的分支选择语句if和switch。if语句应用在“二选一”的条件下,而switch语句应用在“多选一”的条件下。它们都是对条
件表达式进行判断,针对不同的结果,决定转向要执行的Java语句。2022/11/12173.3.1if语句if(布尔表达式)语句或者if(布尔表达式)语句1else语句2布尔表达式语句truefalse布尔
表达式语句2falsetrue语句12022/11/1218例3-4:通过命令行输入2个整数,输出较小者publicclassMinNum{publicstaticvoidmain(Stringargs[]){intx,y,min;x=Integer.pa
rseInt(args[0]);y=Integer.parseInt(args[1]);if(x<y)min=x;elsemin=y;System.out.println("x="+x);System.out.println("y="+y);System.out.pr
intln("min="+min);}}2022/11/1219例3-5:求解方程(a!=0)的根publicclassRoot3_5{publicstaticvoidmain(Stringargs[]){floata,b,x;a=Float.parseF
loat(args[0]);b=Float.parseFloat(args[1]);if(Math.abs(a)>0.000001f){x=-b/a;System.out.println("x="+x);}}}0b
ax2022/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.printl
n("y="+y);}}2022/11/12223.3.2Switch语句switch(表达式){case值1:语句块1;break;case值2:语句块2;break;………case值n:语句块n;break;default:语句块n+1;}2022/11/1223例3-7:通过命令行输入1
~12之间的1个整数,输出相应月份的英文单词publicclassMonth1{publicstaticvoidmain(Stringargs[]){shortmonth;month=Short.parseShort(args[0]);switch(month){case1:Syst
em.out.println(“January”);break;case2:System.out.println(“February”);break;case3:System.out.println(“March”);break;case4:System.o
ut.println(“April”);break;2022/11/1224case5:System.out.println(“May”);break;case6:System.out.println(“June”);break;case7:System.out.println(“Ju
ly”);break;case8:System.out.println(“August”);break;case9:System.out.println(“September”);break;case10:System.out.println(“October”);br
eak;case11:System.out.println(“November”);break;case12:System.out.println(“December”);}}}2022/11/1225例3-8:将百分制
成绩转化为优秀、良好、中等、及格和不及格的5级制成绩。标准为:优秀:90~100分;良好:80~89分;中等:70~79分;及格:60~69分;不及格:60分以下。2022/11/1226publicclassLevel{pu
blicstaticvoidmain(Stringargs[]){shortnewGrade,grade;grade=Short.parseShort(args[0]);switch(grade/10){cas
e10:case9:newGrade=1;break;case8:newGrade=2;break;case7:newGrade=3;break;case6:newGrade=4;break;default:newGrade=5;}2022/1
1/1227System.out.print(grade);switch(newGrade){case1:System.out.println(",优秀");break;case2:System.out.println(",良好");break;c
ase3:System.out.println(",中等");break;case4:System.out.println(",及格");break;case5:System.out.println(",不及格");br
eak;}}}2022/11/1228本章总体纲要第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/12293.4循环结构循环语句的作用是在一定条件下,反复执行一段程序代码,被反复执行的程序称为循环体。Java
提供的循环语句有:while语句、do…while语句和for语句。2022/11/12303.4.1while语句while(布尔表达式){循环体}含义:布尔表达式表示循环执行的条件;循环体可以是一条简单语句,也可以是复合语句;当布尔表达式为
true时,重复执行循环体。truefalse布尔表达式?循环体2022/11/1231例3-9:计算10!publicclassFactorial{publicstaticvoidmain(Stringargs[]){inti;doubl
es;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。至少执行一次循环体。true循环体布尔表达式?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之间System.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{publicstaticvoidmain(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[]){lo
ngf1=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/1240publicclas
sPrime{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.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("Totalsu
m="+s);}}2022/11/1243例3-16:求2~50之间的所有素数。publicclassPrimes{publicstaticvoidmain(Stringargs[]){finalintMAX
=50;inti,k;booleanyes;for(k=2;k<MAX;k++){yes=true;i=2;2022/11/1244while(i<=k-1&&yes){if(k%i==0)yes=false;i++;}if(
yes)System.out.print(k+"");}}}2022/11/1245本章总体纲要第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/
11/1246跳转语句break语句:使程序的流程从一个语句块内部跳转出来。通常在switch和循环语句中使用。continue语句:只在循环语句中使用。其作用是终止当前这一轮的循环,跳过本轮循环剩
余的语句,直接进入下一轮循环。2022/11/1247break语句break语句:提前结束循环。用法一:do{程序语句1;if(条件2){break;}程序语句2;}while(条件1);2022/11/1248break语句例子:int
limit=20;//Sumfrom1tothisvalueintsum=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;//Sumfro
m1tothisvalueintsum=0;//Accumulatesuminthisvariableinti=1;//Loopcounterloop:while(i<=limit){for(intj=1;j<10;j++){if(sum>=100){breakloop;}s
um+=j;}sum+=i++;}System.out.println(“sum=”+sum);2022/11/1251continue语句continue语句:跳过下面的语句,继续循环。用法一:While(条件1){程序语句;if(条件2){
continue;}程序语句;}2022/11/1252continue语句例子:intlimit=20;//Sumfrom1tothisvalueintsum=0;//Accumulatesuminthisvariablein
ti=1;//Loopcounterwhile(i<=limit){if(i%3==0){i++;continue;}sum+=i++;}System.out.println(“sum=”+sum);2022/11/1253c
ontinue语句用法二:标号:While(条件1){程序语句;if(条件2){continue标号;}程序语句;}2022/11/1254continue语句例子intlimit=20;//Sumfrom1tothisvalueintsum=
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(Stri
ngargs[]){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.");elseSy
stem.out.println(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)Sy
stem.out.print(i+"");}}}2022/11/1257本章小结第一部分:语句及程序结构第二部分:顺序结构第三部分:选择结构第四部分:循环结构第五部分:跳转语句2022/11/1258学习目标理解程序控制结构掌握程序基本控制语句:选择结构:if,switch循环
结构for,while,do--while,了解跳转语句break,continue.