第3章Java程序流程控制.docx
《第3章Java程序流程控制.docx》由会员分享,可在线阅读,更多相关《第3章Java程序流程控制.docx(13页珍藏版)》请在冰豆网上搜索。
![第3章Java程序流程控制.docx](https://file1.bdocx.com/fileroot1/2023-1/22/256ec229-f2f5-4c86-abda-a6c5bb52a321/256ec229-f2f5-4c86-abda-a6c5bb52a3211.gif)
第3章Java程序流程控制
第3章Java程序流程控制
实验1三种基本程序结构
【实验目的】
(1)掌握Java中顺序语句、选择语句及循环语句的使用。
(2)熟练掌握用三种基本程序结构及相关的变量、表达式、运算符及有关类的方法来解决问题的思想。
【实验要求】
(1)设置MyEclipse的当前工作空间为D:
\java。
(2)在MyProject3项目中创建GuessNumber类,并实现猜数游戏。
(3)编写程序WhileLoop实现用while结构求0~100整数数字之和。
(4)编写程序DoWhileLoop实现用do-while结构求0~100整数数字之和。
(5)编写程序ForLoop实现用for结构求0~100整数数字之和。
(6)求三个数中的最大值和最小值。
【实验内容】
(1)启动MyEclpise并设置MyEclipse的工作空间为D:
\java。
(2)创建MyProject3项目并在该项目创建GuessNumber类,实现猜数游戏。
利用Math.random()方法产生1~100的随机整数,利用JOptionPane.showInputDialog()方法产生一个输入对话框,用户可以输入所猜的数。
若所猜的数比随机生成的数大,则显示“猜大了,再输入你的猜测:
”;若所猜的数比随机生成的数小,则显示“猜小了,再输入你的猜测:
”;若所猜的数正好为随机生成的数,则显示“猜对了!
”。
(3)在MyProject3项目中创建WhileLoop类,用while结构求0~100的整数数字之和。
(4)在MyProject3项目中创建DoWhileLoop类,用do-while结构求0~100的整数数字之和。
(5)在MyProject3项目中创建ForLoop类,用for结构求0~100的整数数字之和。
(6)在MyProject3项目中创建MaxMinDemo类,求给定三个数中的最大值和最小值并输出这两个值。
【实验步骤】
1.设置MyEclipse的工作空间为D:
\java
(1)单击【开始】|【所有程序】|【MyEclipse】|【MyEclipse8.5】选项启动MyEclipse。
(2)在出现的当前工作空间设置对话框中输入“D:
\java”,并按【OK】按钮进入MyEclipse工作界面。
2.创建MyProject3项目并创建GuessNumber类实现猜数游戏
(1)单击【File】|【New】|【JavaProject】选项打开【NewJavaProject】对话框。
在【Projectname】文本框中输入“MyProject3”,单击【Finish】按钮关闭对话框。
(2)单击【File】|【Class】命令打开新建类的对话框,在【Name】文本框中输入“GuessNumber”,并分别选中“publicstaticvoidmain(String[]args)”和“Generatecomments”以自动产生main主方法及程序的相关注释,单击【Finish】按钮。
(3)在代码编辑器中输入以下代码并补全程序段。
(4)运行并调试程序,观察运行结果。
知识提示Math类是数学类,提供了一些常用的数学方法,如求平方根方法sqrt()。
Math.random()方法主要用于生成0~1的随机小数(不包括1)。
Integer.parseInt()方法主要用于将字符串型转换为整型。
3.在MyProject3项目中创建WhileDemo类以实现0~100之和
(1)单击【File】|【Class】选项打开新建类的对话框,在【Name】文本框中输入“WhileDemo”,并分别选中“publicstaticvoidmain(String[]args)”和“Generatecomments”以自动产生main主方法及程序的相关注释,单击【Finish】按钮。
(2)在代码编辑器中输入以下代码并补全程序段。
(3)运行并调试程序,观察运行结果。
4.在MyProject3项目中创建DoWhileDemo类以实现0~100之和
(1)在MyProject3项目中创建DoWhileDemo类。
(2)在代码编辑器中输入以下代码并补全程序段。
(3)运行并调试程序,观察运行结果。
5.在MyProject3项目中创建ForLoop类以实现0~100之和
(1)在MyProject3项目中创建ForLoop类。
(2)在代码编辑器中输入以下代码并补全程序段。
(3)运行并调试程序,观察运行结果。
6.在MyProject3项目中创建MaxMinDemo类,并求三个数的最大值与最小值
(1)在MyProject3项目中创建MaxMinDemo类。
(2)在代码编辑器中输入以下代码并补全程序段。
(3)运行并调试程序,观察运行结果。
7.创建NumDemo类并输出1到1000之间所有可以被3整除又可以被7整除的数
(1)在MyProject3项目中创建NumDemo类。
(2)在代码编辑器中输入以下代码并补全程序段。
(3)运行并调试程序,观察运行结果。
(4)分别使用while和do-while循环语句改写本程序,并调试运行程序。
【扩展练习】
(1)从键盘输入一个字符,若该字符为小写字母,则输出“此字符是小写字母”;若为大写字母,则输出“此字符为大写字母”;否则输出“此字符不是字母”。
知识提示利用BufferedReaderbuf;
buf=newBufferedReader(newInputStreamReader(System.in)));
Stringstr=buf.readLine;
实现从键盘上输入字符,但要注意的是输入的字符均为字符串。
(2)根据变量score中存放的考试分数输出对应的等级。
60分以下为D等;60~69分为C等;70~89分为B等;90~100分为A等。
3.输出九九乘法表的程序,源代码如下:
程序运行结果如图3-1所示,思考如何将乘法表的标题行和内容对齐?
试修改程序并运行。
图3-1程序运行结果
(3)计算并输出n的阶乘(设n=10),程序由学生独立完成。
(4)编写程序,输出1~100的所有奇数,程序由学生独立完成。
(提示:
满足表达式(i%2!
=0)的i值为奇数。
)
(5)编写程序,打印100以内的所有素数,要求每行打印5个素数。
实验2数组
【实验目的】
(1)掌握数组的定义及初始化方法。
(2)掌握循环结构与数组相结合解决问题的方法。
(3)理解数组下标和数组元素间的关系。
(4)掌握命令行参数数组的使用args。
【实验要求】
(1)采用多种方式完成一维及二维数组的定义。
(2)利用不等长二维数组打印星号。
(3)利用命令行参数args[0]与args[1]实现参数输出。
(4)利用命令行参数数组args求3个整数的最大值。
【实验内容】
(1)在MyProject3项目中创建ArrayDeclare类,采用多种方式完成一维及二维数组的定义。
(2)在MyProject3项目中创建PrintStar类,主要利用不等长二维数组snow打印5行星号,第1行为1个星号,第2行为3个星号,第三行为5个星号,第4行为7个星号,第5行为9个星号,程序运行结果如图3-2所示。
图3-2程序运行结果
(1)
【实验步骤】
1.一维及二维数组的定义
(1)在MyProject3项目中创建ArrayDeclare类。
(2)在代码编辑器中输入以下代码并补全程序段。
(3)运行并调试程序,在以上代码基础上利用循环对数组元素完成赋值操作。
2.利用不等长二维数组打印星号
(1)在MyProject3项目中创建PrintStar类。
(2)在代码编辑器中输入以下代码并补全程序段。
publicclassPrintStar{
publicstaticvoidmain(String[]args){
int[][]snow=newint[5][];
for(inti=0;i<___________;i++)
snow[i]=new_________________;
for(inti=0;ifor(intj=0;_____________;j++){
snow[i][j]='*';
}
}
intn=1;
for(inti=0;ifor(intk=0;k<______________;k++){
System.out.print("");
}
for(intj=0;j____________________________;
System.out.println();
________________;
}
}
}
(3)运行并调试程序。
若让输出的星号均靠左对齐,如何修改上面程序段?
(4)若要输出如图3-3所示的图形,应该在原有程序基础上增加哪些代码段?
试修改并调试程序。
图3-3程序运行结果
(2)
(5)将第4步中实现的程序再做修改,实现如图3-4所示的输出效果。
图3-4程序运行结果(3)
3.利用两个命令行参数args[0]与args[1]实现参数输出
(1)在MyProject3项目中创建Say类。
(2)在代码编辑器中输入以下代码:
publicclassSay{
publicstaticvoidmain(Stringargs[]){
Stringname=args[0];
Stringword=args[1];
System.out.println("我想对"+name+"悄悄地说:
"+word);
}
}
(3)运行程序,结果如图3-5所示。
程序在运行过程中出错了,数组下标越界异常,不能正常执行。
图3-5程序运行结果(4)
(4)如图3-6所示,单击【Run】|【RunConfigurations…】选项,打开【RunConfigurations】对话框。
图3-6【RunConfigurations】对话框
(5)在【RunConfigurations】对话框中选择【Arguments】选项卡,在【Programarguments】下的文本框中输入两个参数,如图3-7所示。
单击【Run】命令按钮,运行程序。
图3-7【RunConfigurations】对话框
(6)程序运行结果如图3-8所示。
图3-8程序运行结果
(7)在命令提示符状态下运行本程序,需要单击【开始】|【运行】,打开【运行】对话框,在其中的文本框中输入“cmd”打开命令提示符窗口。
(8)如图3-9所示,输入相应命令进入D:
\java\ch3\MyProject3\src目录。
图3-9命令提示符窗口
(9)如图3-10所示,输入命令“javacSay.java”编译文件,然后输入“javaSay妈妈我爱你!
!
”命令运行文件。
其中“妈妈”是第一个命令行参数,送给args[0];“我爱你!
!
”是第二个命令行参数,送给args[1]。
图3-10java命令运行程序
4.利用3个命令行参数求3个整数的最大值
(1)在MyProject3项目中创建NumMax类。
(2)在代码编辑器中输入以下代码:
publicclassNumMax{
publicstaticvoidmain(Stringargs[]){
intmax;
inta=Integer.parseInt(args[0]);
intb=Integer.parseInt(args[1]);
intc=Integer.parseInt(args[2]);
if(a>b&&a>c)
___________;
elseif(b>c)
___________;
else
___________;
System.out.println("三个数中最大的是:
"+max);
}
(3)在MyEclipse环境下运行程序,观察结果。
(4)在命令提示符状态下运行程序,观察结果。
(5)修改程序,完成求解两个命令行参数的最大值和最小值。
【扩展练习】
(1)编程实现求Fibonacci数列的前10个数字。
Fibonacci数列的定义为:
F[1]=1,F[2]=1,…,
F[n]=F[n-1]+F[n-2 ] (n>=3)
知识提示关键代码如下:
f[0]=f[1]=1;
for(i=2;i<10;i++)
f[i]=f[i-1]+f[i-2];
(2)编程:
采用冒泡法实现对数组元素由小到大排序。
知识提示冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。
关键代码如下:
for(i=0;i for(j=i+1;j if(intArray[i]>intArray[j]){
t=intArray[i];intArray[i]=intArray[j];intArray[j]=t;
}