Java实验 控制流语句Word文档下载推荐.docx
- 文档编号:8640811
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:15
- 大小:235.59KB
Java实验 控制流语句Word文档下载推荐.docx
《Java实验 控制流语句Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java实验 控制流语句Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。
}
else{
System.out.print(year+"
年不是闰年"
}
}
3.2源程序如下:
//monthdays.java
//判断某年某月有多少天,具体年份和月份通过键盘录入
publicclassmonthdays{
请输入年份:
请输入月份:
intmonth=sc.nextInt();
intdays=0;
switch(month){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
break;
case4:
case6:
case9:
case11:
days=30;
case2:
=0)||(year%400)==0)
days=29;
else
days=28;
default:
System.out.println("
年月有误,请检查"
System.out.println(year+"
年"
+month+"
月共有"
+days+"
天"
}
3.3源程序如下:
//paixu.java
//将五个整数按照顺序排列,不允许用循环结构,数据由键盘录入
importjava.util.Arrays;
publicclasspaixu{
int[]X=newint[5];
请输入5个整数:
Scannersc=newScanner(System.in);
for(inti=0;
i<
X.length;
i++)
X[i]=sc.nextInt();
intt=0;
if(X[0]>
X[1])
{t=X[0];
X[0]=X[1];
X[1]=t;
X[2])
X[0]=X[2];
X[2]=t;
X[3])
X[0]=X[3];
X[3]=t;
X[4])
X[0]=X[4];
X[4]=t;
if(X[1]>
{t=X[1];
X[1]=X[2];
X[1]=X[3];
X[1]=X[4];
if(X[2]>
{t=X[2];
X[2]=X[3];
X[2]=X[4];
if(X[3]>
{t=X[3];
X[3]=X[4];
排序后数组:
+Arrays.toString(X));
3.4源程序如下:
//feisushu.java
//求100-1000范围内所有的非素数
publicclassfeisushu{
intnum,i,j,k=0;
100-1000间所有非素数"
for(i=100;
i<
=1000;
i++){
num=i;
for(j=2;
j<
=num;
j++)
if(num%j==0)
break;
if(num!
=j){
System.out.print(num+"
"
k++;
if(k%20==0)
System.out.println();
}
3.5-1源程序如下:
//breaktest1.java
//验证不带符号break的中断功能
//中断当前循环体的执行,即不再继续执行剩余的循环,而是开始执行该循环体后面的语句。
对于多重循环,不带符号的break语句只能从其所在的那层循环中跳出,而不是跳出所有的循环
//计算100~150之间的素数
publicclassbreaktest1{
publicstaticvoidmain(String[]args){
inti,j;
for(i=100;
=150;
i++){
for(j=2;
j<
=i/2;
j++){
if(i%j==0)
//如果i%j==0,跳出第二重循环,进入第一重循环
if(j>
i/2){
System.out.println(i+"
是素数"
3.5-2源程序如下:
//breaktest2.java
//验证带符号break的中断功能
/*break标号名;
其中,标号名是一个标识符,用来标示某一程序块。
Java语言中,标号的定义只能出现在循环语句之前,在标号和循环语句之间不应插入任何其他语句。
标号:
循环语句
带标号的break语句与标号搭配使用可以中断多重循环,使程序流程跳转到标号标示的循环体之外
*/
publicclassbreaktest2{
//不带标号,跳出本循环
outer:
breakouter;
//跳转到标号outer处
//执行带标号的break语句后,虽然标号在循环语句前面,但不再执行循环语句,而是执行循环体后面的语句
3.5-3源程序如下:
//continuetest1.java
//验证不带符号continue的中断功能
//中断本次循环,直接回到当前循环的起始处,开始下一轮循环
//输出1~100之间所有奇数的和
publicclasscontinuetest1{
intsum=0;
for(inti=0;
=100;
if(i%2==0)
continue;
//不带符号的continue语句
sum+=i;
1~100之间所有奇数的和为"
+sum);
3.5-4源程序如下:
//continuetest2.java
//验证带符号continue的中断功能
/*continue标号名;
带标号的continue语句与标号搭配使用可以使程序流程跳转到标号标示处,直接开始该标号之后循环的下一轮*/
//计算100~150之间的所有素数
publicclasscontinuetest2{
outer:
continueouter;
3.5-5源程序如下:
//returntest.java
//验证return的中断功能
/*使程序流程从当前执行的方法返回。
使用方式如下:
return表达式;
该语句的作用是首先计算出表达式的值,并返回这个值,然后结束该方法的执行。
如果某个方法没有返回值,return语句就可有可无。
如果没有return语句,该方法在被调用时,执行方法的最后一条语句后,就自动结束方法的执行。
如果有return语句,这时,return语句应表示为:
return;
一个方法中允许出现多个return语句,分别用于不同条件下的方法返回
*/
//输入两个数,判断较大数和较小数
publicclassreturntest{
staticintmax(intx,inty){
returnx>
y?
x:
y;
staticintmin(intx,inty){
intz;
if(x<
y)
z=x;
else
z=y;
returnz;
publicstaticvoidmain(Stringargs[]){
请输入两个整数:
intx=sc.nextInt();
inty=sc.nextInt();
Max="
+max(x,y));
Min="
+min(x,y));
4.实验结果
图4.1-1判断2008年是闰年
图4.1-2判断2014年不是闰年
图4.2-1判断2014年2月共有28天
图4.2-2判断2008年2月共有29天
图4.2-3判断2014年3月共有31天
图4.2-4判断2014年4月共有30天
图4.3-1将键盘输入的5个整数从小到大排序
图4.3-2若键盘输入超过5个整数,则对前5个整数排序
图4.4输出100-1000范围内所有的素数
图4.5-1计算100-150范围内所有素数(验证不带符号break的中断功能)
图4.5-2计算100-150范围内所有素数(验证带符号break的中断功能)
图4.5-3计算1-100之间所有奇数的和(验证不带符号continue的中断功能)
图4.5-4计算100-150范围内所有的素数(验证带符号continue的中断功能)
图4.5-5判断输入的两个整数中较大数和较小数(验证return中断功能)
5.实验总结
1.本次实验任务1-4题均要求从键盘输入,这就用到了课堂上老师提到的扫描器类Scanner,要使用它必须导入importjava.util.Scanner;
例如:
使用户从System.in中读取一个数:
Scannersc=newScanner(System.in);
Inti=sc.nextInt();
2.对于任务3中的排序,最初的想法是用上课时提到的自动排序Arrays.sort(x);
然后利用Arrays.toString(x);
将其以字符串的形式输出,具体程序如下:
X[i]=sc.nextInt();
Arrays.sort(X);
然后觉得这样是不是太过于简单了,考虑到5个整数排序,数字也不多,于是就用if语句来实现了排序的功能。
3.看到任务4和5,首先想到的是我们熟知的计算出素数的算法,共3种,虽然大同小异,但效率却相差甚多。
可是在修改成实现输出非素数功能时,并非我想象的那么简单,其过程中出现了许多错误,比如什么都没输出、该范围内每个数都输出、输出一部分非素数、输出有重复,真不敢相信会碰到几乎可能出现的所有错误。
冷静下来后,再次翻看了上课的PPT上的有关实例,并翻阅了图书馆借来的几本有关Java的书对应部分:
中断的实现,然后重新分析算法的每一步实现,终于调试出了希望出现的结果。
(具体可以对比任务4和任务5里面的源程序,观察出其异同)
4.下面总结一下break、continue、return中断功能的实现:
(1)不带符号break的中断功能
break;
中断当前循环体的执行,即不再继续执行剩余的循环,而是开始执行该循环体后面的语句。
对于多重循环,不带符号的break语句只能从其所在的那层循环中跳出,而不是跳出所有的循环。
(2)带符号break的中断功能
break标号名;
其中,标号名是一个标识符,用来标示某一程序块。
标号:
带标号的break语句与标号搭配使用可以中断多重循环,使程序流程跳转到标号标示的循环体之外。
(3)不带符号continue的中断功能
中断本次循环,直接回到当前循环的起始处,开始下一轮循环。
(4)带符号continue的中断功能
continue标号名;
带标号的continue语句与标号搭配使用可以使程序流程跳转到标号标示处,直接开始该标号之后循环的下一轮。
(5)return的中断功能
使程序流程从当前执行的方法返回。
return表达式;
该语句的作用是首先计算出表达式的值,并返回这个值,然后结束该方法的执行。
如果某个方法没有返回值,return语句就可有可无。
如果有return语句,这时,return语句应表示为:
return;
一个方法中允许出现多个return语句,分别用于不同条件下的方法返回。
5.break与continue语句的异同:
break语句可以在switch语句和循环语句中使用,而continue语句只能在循环中使用。
在循环语句中,不带标号的break语句结束它所在循环中的整个循环,而不带标号的continue语句是结束本次循环,开始新的循环。
带标号的break语句跳转到标号后,不再执行标号后面的循环语句,而带标号的continue语句跳转到标号后,继续执行标号后的循环语句。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java实验 控制流语句 Java 实验 控制 语句