第二章分支循环与方法.docx
- 文档编号:7322318
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:19
- 大小:19.99KB
第二章分支循环与方法.docx
《第二章分支循环与方法.docx》由会员分享,可在线阅读,更多相关《第二章分支循环与方法.docx(19页珍藏版)》请在冰豆网上搜索。
第二章分支循环与方法
第二章:
分支、循环与方法
知识点:
1、if,else语句的单分枝与多分枝。
2,switch语句的多分枝实现。
3,用while,do-whilw,for实现循环。
4,学习continue,break控制语句。
EX1:
(题库第三章EX6。
)难度等级:
A
编程用多分枝的if语句实现对输入的两个数字进行比较,并输出所有满足的关系;
/*本Application程序使用了两个独立的TextField对象输入两个数字,当用户在第二个文本框中按下回车键后对两个数字进行比较,并输出所有满足的关系*/
importjava.awt.*;
importjava.applet.Applet;
publicclassComparisonextendsApplet
{
//定义标签、文本框。
Labelprompt1;
TextFieldinput1;
Labelprompt2;
TextFieldinput2;
intnum1,num2;
publicvoidinit()
{
//初使化标签、文本框。
prompt1=newLabel("Enteraninteger");
input1=newTextField(10);
prompt2=newLabel("EnteranintegerandpressEnter");
input2=newTextField(10);
add(prompt1);
add(input1);
add(prompt2);
add(input2);
}
publicvoidpaint(Graphicsg)
{
g.drawString("Thecomparisonresultsare:
",70,75);
if(num1==num2)//如果num1等于num2。
g.drawString(num1+"=="+num2,100,90);
if(num1!
=num2)//如果num1不等于num2。
g.drawString(num1+"!
="+num2,100,105)
if(num1 g.drawString(num1+"<"+num2,100,120); if(num1>num2)//如果num1大约num2。 g.drawString(num1+">"+num2,100,135); } publicbooleanaction(Eventevent,Objecto) { if(event.target==input2) { num1=Integer.parseInt(input1.getText()); num2=Integer.parseInt(input2.getText()); repaint(); } returntrue; } } EX2: (题库第三章EX8)难度等级: B 运用switch语句实现输入成绩后判断应得评价档次的功能; importjava.io.*; publicclassex8 { staticintc,i; publicvoidmain(String[]args) {System.out.println("请输入你的考试成绩: "); try { intc=System.in.read();//输入成绩。 } catch(IOExceptione) { System.out.println(e.toString()); } test(c); switch(i) { case (1): System.out.println("你的成绩为A");bread;//输入case的每种情况。 case (2): System.out.println("你的成绩为B");bread; case(3): System.out.println("你的成绩为C");bread; case(4): System.out.println("你的成绩为D");bread; case(5): System.out.println("你的成绩为E");bread; } } publicstaticvoidtest(intpra) { //用的if多分枝语句实现。 if(c<=100&c>=90)//成绩C范围[90,100]。 i=1; if(c<90&c>=80)//成绩C范围[80,90]。 i=2; if(c<80&c>=70)//成绩C范围(80,70)。 i=3; if(c<70&c>=60)//成绩C范围(70,60)。 i=4; if(c<60)//成绩C范围(60,0]。 i=5; ) ) EX3: (题库第三章EX9)难度等级: D 要求分别运用for,while,do-while三种循环语句编程实现找出1-100中所有质数的功能; /*这是一个关于循环的实例,使用三种的循环找出100以内的质数*/ publicclassCircle { staticintintCount; publicstaticvoidmain(String[]args) { inta[]=newint[50]; For(a); System.out.println("使用for循环: "); Output(a,intCount); While(a); System.out.println("使用while循环: "); Output(a,intCount); DoWhile(a); System.out.println("使用dowhile循环: "); Output(a,intCount); } /*使用for循环,将最后的结果放在参数数组a中,该函数没有返回值*/ staticvoidFor(inta[]) { inti,j; intCount=2; booleanblnFound; a[0]=2; a[1]=3; for(i=4;i<100;i++)//i的取值范围。 { blnFound=true; for(j=2;j<10;j++)//j的取值范围。 { if(i%j==0)//求质数的方法。 blnFound=false; } if(blnFound) { a[intCount]=i; intCount++;// } } } /*使用while循环,将最后的结果放在参数数组a中,该函数没有返回值*/ staticvoidWhile(inta[]) { inti,j; intCount=2; booleanblnFound; a[0]=2; a[1]=3; i=4; while(i<100) { blnFound=true; j=2; while(j<10) { if(i%j==0) blnFound=false; j++; } if(blnFound) { a[intCount]=i; intCount++; } i++; } } /*使用dowhile循环,将最后的结果放在参数数组中,该函数没有返回值*/ staticvoidDoWhile(inta[]) { inti,j; intCount=2; booleanblnFound; a[0]=2; a[1]=3; i=2; do { blnFound=true; j=2; do { if(i%j==0) blnFound=false; j++; }while(j<10);//j的范围。 if(blnFound) { a[intCount]=i; intCount++; } i++; }while(i<100);//i的范围。 } staticvoidOutput(inta[],intintCount) { inti; for(i=0;i { System.out.print(a[i]+""); } System.out.println(); } } EX4: (题库第三章EX10)难度等级: B 编程运用循环语句和递归算法求1-10各数的阶乘,并打印出结果; publicclassjiecheng { publicvoidmain(String[]args) { inti; for(i=0;i<=10;i++) { System.out.println(i+"! ="+factorial(i)); } } publiclongfactorial(longnumber) { if(number<=1) return1; else returnnumber*factorial(number-1);//递归算法 } } EX5: (JAVA实验指导P245)难度等级: B /*找出所有的水仙花数并输出。 提示: 水仙花数是三位整数,它的各位数字的立方和等于这个数本身。 例如: 371=3^3+7^3+1^3,则371就是一个水仙花数*/ publicclassNarcissus { publicstaticvoidmain(Stringargs[]) { inti,j,k,n=100,m=1; while(n<1000) { i=n/100;//计算百位数。 j=(n-i*100)/10;//计算十位数。 k=n%10;//计算个位数 if(Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3)==n) {System.out.println("找到第"+m+"个水仙花数: "+n); m++; } n++; } } } EX6: (JAVA2简明教程P73)难度等级: C 运用if-else语句实现判断出年份是否为闰年的功能 importjava.applet.*; importjava.awt.*; importjava.awt.event.*; publicclassleapyearextendsAppletimplementsActionListener { Labelresult; TextFieldin1; Buttonbtn; intyear; booleanleap; publicvoidinit() { result=newLabel("请先输入待判断的年份"); in1=newTextField(5); btn=newButton("判断"); add(in1); add(btn); add(result); btn.addActionListener(this); } publicvoidactionPerformed(ActionEvente) { year=Integer.parseInt(in1.getText()); if(year%4! =0)//用if-else语句判断是否为闰年。 leap=false; elseif(year%100! =0) leap=true; elseif(year%400! =0) leap=false; else leap=true; if(leap==true)//用if-else语句判断leap是否为真。 result.setText(year+"年是闰年"); else result.setText(year+"年不是闰年"); in1.setText(""); } } EX7: (JAVA实验指导P241)难度等级: B 编写一个Applet程序包括三个文本框,用户输入三个浮点数,用if语句选出最大值与最小值。 importjava.applet.*; importjava.awt.*; importjava.awt.event.*; publicclassMaxMinextendsAppletimplementsActionListener { Labell1,l2,l3; TextFieldtf1,tf2,tf3; Buttonbtn; publicvoidinit() { l1=newLabel("请输入三个数: "); add(l1); tf1=newTextField(5); add(tf1); tf2=newTextField(5); add(tf2); tf3=newTextField(5); add(tf3); l2=newLabel("最大值为: "); add(l2); l3=newLabel("最小值为: "); add(l3); tf1.addActionListener(this); tf2.addActionListener(this); tf3.addActionListener(this); resize(50,200); } publicvoidactionPerformed(ActionEvente) { doublei,j,k,max,min,temp; i=Double.valueOf(tf1.getText()).doubleValue(); j=Double.valueOf(tf2.getText()).doubleValue(); k=Double.valueOf(tf3.getText()).doubleValue(); if(i>j)//用三个if语句找出max,min。 {temp=i;i=j;j=temp;} if(i>k) {temp=i;i=k;k=temp;} if(j>k) {temp=j;j=k;k=temp;} max=k; min=i; l2.setText("最大值为: "+String.valueOf(max)); l3.setText("最小值为: "+String.valueOf(min)); } } EX8: (java实验指导P243)难度等级: C 写一个Applet程序,包括两个输入区域和一个标签,用户输入两个整数,用do-while语句求出最大公约数和最小公倍数。 importjava.applet.*; importjava.awt.*; importjava.awt.event.*; publicclassGreatestextendsAppletimplementsActionListener { Labell1,l2; TextFieldtf1,tf2; publicvoidinit() { l1=newLabel("请输入数字"); add(l1); tf1=newTextField(5); add(tf1); tf2=newTextField(5); add(tf2); l2=newLabel("最大公约数为: "+"最小公倍数为: "); add(l2); tf1.addActionListener(this); tf2.addActionListener(this); resize(100,100); } publicvoidactionPerformed(ActionEvente) { inti,j,k,mul,temp,div; i=Integer.parseInt(tf1.getText()); j=Integer.parseInt(tf2.getText()); k=i*j; if(i {temp=i;i=j;j=temp;} if(i%j==0) div=j; else {do { div=i%j;//利用do-while循环求出div,mul。 i=j; j=div; }while(div! =0); div=i; } mul=k/div; l2.setText("最大公约数为: "+div+"最小公倍数为: "+mul); } } EX9: (JAVA实验指导P543.6)难度等级: B 编写一个程序,利用sin,cos三角函数,用户输入圆心与半径,用“*”画出圆。 importjava.applet.*; importjava.awt.*; importjava.awt.event.*; publicclassRoundextendsAppletimplementsActionListener { Labell1,l2; TextFieldtf1,tf2,tf3; doublerad; intxinput,yinput; publicvoidinit() { l1=newLabel("请输入半径: "); add(l1); tf1=newTextField(5); add(tf1); l2=newLabel("请输入坐标: "); add(l2); tf2=newTextField(5); add(tf2); tf3=newTextField(5); add(tf3); tf1.addActionListener(this); tf2.addActionListener(this); tf3.addActionListener(this); resize(300,100); } publicvoidactionPerformed(ActionEvente) { xinput=Integer.parseInt(tf2.getText()); yinput=Integer.parseInt(tf3.getText()); rad=Double.valueOf(tf1.getText()).doubleValue(); repaint(); } publicvoidpaint(Graphicsg) { for(ints=0;s<=360;s+=10)//角度[0,360],每隔10度画一个”*”。 { g.drawString("*",xinput+(int)(rad*Math.cos(s)),yinput+(int)(rad*Math.sin(s))); } } } EX10: (java实验指导P633.27)难度等级: B 编写一个Applet程序,输入一个整数[0,9999],把该整数各位数字分别显示。 importjava.applet.*; importjava.awt.*; importjava.awt.event.*; publicclassNumextendsAppletimplementsActionListener { Labell1,l2,l3; TextFieldtf1,tf2,tf3,tf4,tf5; Buttonbtn1,btn2; publicvoidinit() { l1=newLabel("请输入一个数字"); add(l1); tf1=newTextField(5); add(tf1); l2=newLabel("每位数字为: "); add(l2); tf1.addActionListener(this); resize(200,200); } publicvoidactionPerformed(ActionEvente) { inti,j,k; i=Integer.parseInt(tf1.getText()); l2.setText("每一位数字为: "+i/1000+""+i/100+""+(i%100)/10+ ""+(i%100)%10);//填写方法。 } } EX11: (JAVA实验指导P633.28)难度等级: B 编写一个Application程序,输入一个数字[0,9],计算出它的阶乘。 publicclassFactorial { publicstaticvoidmain(Stringargs[])throwsjava.io.IOException { inti,result=1; i=System.in.read()-48; for(intj=1;j<=i;j++)//j的范围。 { result*=j;//rusult的计算式。 } System.out.println("阶乘为: "+result); } } EX12(java实验指导P633.29)难度等级: B 计算常数e=1+1/1! +1/2! +1/3! +1/4! +……。 publicclassEDemo { publicstaticvoidmain(Stringargs[])throwsjava.io.IOException { doubleresult,sum=1.0,res=1.0,i; i=System.in.read()-48;//i范围[1,9] for(doublek=1.0;k<=i;k++) { for(doublej=1.0;j<=k;j++) { res*=j;//计算阶乘。 } result=1.0/res;//计算除。 sum+=result;//计算和。 } System.out.println("e为: "+sum); } } EX13: (java实验指导P643.41)难度等级: A 根据上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 分支 循环 方法