1、实验 1 Java语言的基本语句练习实验 1 Java语言的基本语句练习一、实验目的1 了解 Java的数据类型 2 掌握各种变量的声明方式。 3 理解运算符的优先级。 4 掌握 Java基本数据类型、运算符与表达式、数组的使用方法。 5 理解 Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 6 通过以上内容,掌握 Java语言的编程规则。 二、实验要求 1. 编写一个声明 Java不同数据类型变量的程序。 2. 编写一个使用运算符、表达式、变量的程序。 3. 编写一个使用 Java数组的的程序。 4. 编写表达式语句、复合语句的程序。 5. 编写使用不同选择结构的
2、程序。 6. 编写使用不同循环结构结构的程序。 三、实验内容(一) 声明不同数据类型的变量1编写声明不同数据类型变量的程序文件。 publicclassLX2_1publicstaticvoidmain(Stringargs)byteb=0x55;shorts=0x55ff;inti=1000000;longl=0xffffL;charc=a;floatf=0.23F;doubled=0.7E-3;booleanB=true;StringS= 这是字符串类数据类型 ;System.out.println( 字节型变量b=+b);System.out.println( 短整型变量s=+s);Sy
3、stem.out.println( 整型变量i=+i);System.out.println( 长整型变量l=+l);System.out.println( 字符型变量c=+c);System.out.println( 浮点型变量f=+f);System.out.println( 双精度变量d=+d);System.out.println( 布尔型变量B=+B);System.out.println( 字符串类对象 S=+S);2编译并运行该程序,输出如下结果 : (二) 了解变量的使用范围1建立 LX2_2.java文件,通过本程序了解变量的使用范围,源代码如下。 public class
4、LX2_2 static int i=10; public static void main(String args) int k=10; System.out.println(i=+i); System.out.println(k=+k); System.out.println(i=+i); System.out.println(k=+k); /编译时将出错,已出 k的使用范围 2编译 LX2_2.java 此时会出现错误提示如图 2.2所示。因为变量 k在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。 图 2.23修改上面的程序,使其运行正确。 4成功运行该程序。 思考:LX2
5、_2.java程序说明了什么问题? 成员变量在整个类内有效,其有效性与它书写的先后位置无关,局部变量只在方法内有效,而且与其声明的位置有关。(三) 使用关系运算符和逻辑运算符1建立使用关系运算符和逻辑运算符的程序文件,源代码如下。 class LX2_3 public static void main(String args) int a=25, b=20, e=3, f=0; boolean d=ab; 2补充上面的程序代码,编译并运行该程序,结果如图 2.3所示。 图 2.3(四) 使用数组1建立使用数组的程序,本程序建立了一个长度为 5的1维数组,一个长度为 12的 2维数组,源代码如下
6、:publicclassLX2_4publicstaticvoidmain(Stringargs)inta=newint5;intarr1=newint34;a0=10;a1=10+a0;a2=30;a3=40;a4=a1+a2;arr100=0;arr101=1;arr102=2;arr110=3;arr111=4;arr112=5;arr120=6;arr121=7;arr122=8;System.out.println(a+0+=+a0);System.out.println(a+1+=+a1);System.out.println(a+2+=+a2);System.out.printl
7、n(a+3+=+a3);System.out.println(a+4+=+a4);System.out.println(arr1(+0+,+0+)=+arr100);System.out.println(arr1(+0+,+1+)=+arr101);System.out.println(arr1(+0+,+2+)=+arr102);System.out.println(arr1(+1+,+0+)=+arr110);System.out.println(arr1(+1+,+1+)=+arr111);System.out.println(arr1(+1+,+2+)=+arr112);2编译并运行程
8、序,结果如图 2.4所示。图 2.4(五) 使用表达式语句与复合语句1 建立包含表达式语句程序,源代码如下。 class LX2_5 public static void main(String args) int k, i=3, j=4; k=20*8/4+i+j*i; System.out.println(表达式(20*8/4+i+j*i)+k); 2建立包含复合语句程序,源代码如下。 class LX2_6 public static void main(String args) int k, i=3, j=4; k=i+j; System.out.println(在复合块外的输出 k=
9、+k); float f; f=j+4.5F; i+; System.out.println(在复合块内的输出 f=+f); System.out.println(在复合块内的输出 k=+k); System.out.println(在复合块外的输出 i=+i); 3 编译并运行上述两个源程序,结果如图2.5、2.6所示。 图2.5 图2.6 4 将变量 i在块内定义会怎样?改变其他变量的位置看看会发生什么变化。 思考:指出程序的复合结构以及变量的使用范围。 定义变量可能有三种情况:(1)在函数的开头定义;(2)在函数内的复合语句内定义.;(3)在函数的外部定义.;在一个函数内部定义的变量只在
10、本函数范围内有效,也就是说只有在本函数内才能引用它们,在此函数以外是不能使用这些变量的.在复合语句内定义的变量只在本复合语句范围内有效,只有在本复合语句内才能引用它们.在该复合语句以外是不能使用这些变量的.以上这些成为局部变量.程序的编译单位是源程序文件,一个源文件可以包含一个或若干个函数.在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量,外部变量是全局变量(也称全程变量).全局变量可以为本文件中其他函数所共用.它的有效范围为从定义变量的位置开始到本源文件结束.Java有两种变量bai范围:全局和局部du。如果在任何函数定义之外声明了一zhi个变量,则该变量为全局变量,且dao
11、该变量的值在整个持续范围内都可以访问和修改。如果在函数定义内声明了一个变量,则该变量为局部变量。每次执行该函数时都会创建和破坏该变量;且它不能被该函数外的任何事物访问。(六) 使用选择语句1使用 if.else语句 (1)程序功能:使用 if.else语句构造多分支,判断某一年是否为闰年。闰年的条件是符合下面二者之一:能被 4整除,但不能被 100整除;能被 4整除,又能被 100整除。 (2)编写源程序文件,代码如下。 public class LX2_7 public static void main(String args) boolean leap; int year=2005; if
12、 (year%4=0 & year%100!=0) | (year%400=0) / 方法 1 System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); year=2008; / 方法 2 if (year%4!=0) leap=false; else if (year%100!=0) leap=true; else if (year%400!=0) leap=false; else leap=true; if (leap=true) System.out.println(year+ 年是闰年); else Sy
13、stem.out.println(year+ 年不是闰年); if (leap=true) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); (3)补充上面的程序代码,编译运行程序,列出运行结果 publicclassLX2_7publicstaticvoidmain(Stringargs)booleanleap;intyear=2005;if(year%4=0&year%100!=0)|(year%400=0)/ 方法1System.out.println(year+ 年是闰年);elseSystem.
14、out.println(year+ 年不是闰年);year=2008;/ 方法2if(year%4!=0)leap=false;elseif(year%100!=0)leap=true;elseif(year%400!=0)leap=false;elseleap=true;if(leap=true)System.out.println(year+ 年是闰年);elseSystem.out.println(year+ 年不是闰年);year=2050;/ 方法3if(year%4=0)if(year%100=0)if(year%400=0)leap=true;elseleap=false;els
15、eleap=false;elseleap=false;if(leap=true)System.out.println(year+ 年是闰年);elseSystem.out.println(year+ 年不是闰年);运行结果: 思考:本程序中有几个选择语句,哪些具有嵌套关系? 本程序中有九个选择语句, 具有嵌套关系2使用 switch语句 (1)程序功能:在不同温度时显示不同的解释说明。 (2)程序源代码如下。 class LX2_8 public static void main(String args) int c=38; switch (c10? 1:c25? 2:c35? 3:4) ca
16、se 1: System.out.println( +c+ 有点冷。要多穿衣服。); case 2: System.out.println( +c+ 正合适。出去玩吧。); case 3: System.out.println( +c+ 有点热。); default: System.out.println( +c+ 太热了!开空调。); (3)编译运行程序,其结果如图 2.8所示。 图 2.8修改后程序:class LX2_8 public static void main(String args) int c=38; switch (c10? 1:c25? 2:c35? 3:4) case
17、1: System.out.println( +c+ 有点冷。要多穿衣服。); break;case 2: System.out.println( +c+ 正合适。出去玩吧。); break;case 3: System.out.println( +c+ 有点热。); break;default: System.out.println( +c+ 太热了!开空调。); break; (七) 使用循环语句1for循环语句练习 (1) 程序功能:按 5度的增量打印出一个从摄氏温度到华氏温度的转换表。 (2) 程序源代码如下。 class LX2_9 public static void main (
18、String args) inth,c;System.out.println( 摄氏温度 华氏温度);for(c=0;c=40;c+=5)h=c*9/5+32;System.out.println(+c+h); (3)补充上面的程序代码,编译并运行程序,其结果如图 2.9所示。 图 2.92while循环语句练习 (1)程序功能:运行程序后从键盘输入数字 1/2/3后,可显示抽奖得到的奖品;如果输入其它数字或字符显示“没有奖品给你!”。 (2)编译源程序。 importjava.io.*;classLX2_10publicstaticvoidmain(Stringargs)throwsIOEx
19、ceptioncharch;System.out.println( 按1/2/3 数字键可得大奖!);System.out.println( 按空格键后回车可退出循环操作 .);while(ch=(char)System.in.read()!=)System.in.skip(2);/ 跳过回车键switch(ch)case1:System.out.println( 恭喜你得大奖,一辆汽车 !);break;case2:System.out.println( 不错呀,你得到一台笔记本电脑 !);break;case3:System.out.println( 没有白来,你得到一台冰箱 !);bre
20、ak;default:System.out.println( 真不幸,你没有奖品 !下次再来吧。);(3)在命令提示符窗口运行程序,然后分别按1、2、3、r结果如图 2.10所示。 图 2.103dowhile循环语句练习 (1) 程序功能:求12+100之和,并将求和表达式与所求的和显示出来。 classLX2_11publicstaticvoidmain(Stringargs)intn=1,sum=0;dosum+=n+;while(n=100);System.out.println(1+2 .+100=+sum);(2)编译并运行程序,结果如图2.11所示。 图 2.114多重循环练习
21、(1)输出九九乘法表的程序, publicclassLX2_12publicstaticvoidmain(Stringargs)inti,j,n=9;System.out.print(*|);for(i=1;i=n;i+)System.out.print(+i);System.out.print(n-|);for(i=1;i=n;i+)System.out.print(-);System.out.println();for(i=1;i=n;i+)System.out.print(+i+|);for(j=1;j=i;j+)System.out.print(+i*j);System.out.pri
22、ntln();(2)编译并运行程序,结果如图 2.12所示。 图 2.12四、练习题1分析下面的程序,说出下面的程序为什么是死循环? class Sum public static void main(String args) int i=1,n=10,s=0; while (i=n) s = s + i; System.out.println(s=+s); 答:因为i,n值不变,i恒小于n,所以while循环就会一直成立,因此死循环。2分析下面源程序的结构,写出运行结果。 class CircleArea final static double PI=3.14159; public stat
23、ic void main(String args) double r1=8.0, r2=5.0; System.out.println(半径为+r1+的圆面积+area(r1); System.out.println(半径为+r2+的圆面积+area(r2); static double area(double r) return (PI*r*r); 源程序创建了一个自定义类CircleArea,该类包含了一个类成员变量PI,一个类方法area 将返回圆面积。在主方法main中定义了两个实例变量r1与r2,并调用area方法输入圆面积。程序结果如图所示,3编写程序,根据考试成绩的等级打印出百分
24、制分数段。设 A为 90分以上、B为 80分以上、C为 70分以上、D为 60分以上、E为 59分以下。要求在程序中使用开关语句。 importjava.util.Scanner;publicclass Second publicstaticvoid main(String args) / TODOAuto-generated method stub Scanner cin=new Scanner(System.in); String grade=cin.nextLine(); switch(grade) caseA: System.out.println(90分以上); break; cas
25、eB: System.out.println(80分以上); break; caseC: System.out.println(70分以上); break; caseD: System.out.println( 60分以上); break;caseE: System.out.println( 59分以下); break; default: System.out.println(你输入的查询等级有误!); cin.close(); 4完整下面的程序,利用 break语句和带标号的 break语句分别退出一重循环和二重循环。 for (i=0; i10; i+) int j=i*10 while(j100) if (j=10) break; j=j+5; 解:完整的程序如下所示:public class 4public static void main(string args)Int i;bh1:for(i=0;i-10;i+)int j=i*10;while(j100)if(j=10)break;j=j+5;continue bh1;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1