实验?? Java 基本语法练习
一、实验目的
????? 1. 了解 Java 的数据类型
? 2. 掌握各种变量的声明方式。
? 3. 理解运算符的优先级。
? 4. 掌握 Java 基本数据类型、运算符与表达式。
? 5. 理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
? 6. 通过以上内容,掌握 Java 语言的编程规则。
二、实验要求
? 1. 编写一个声明 Java 不同数据类型变量的程序。
? 2. 编写一个使用运算符、表达式、变量的程序。
? 3. 编写一个使用 Java 数组的的程序。
? 4. 编写表达式语句、复合语句的程序。
? 5. 编写使用不同选择结构的程序。
? 6. 编写使用不同循环结构结构的程序。
三、实验内容
(一) 声明不同数据类型的变量
?? 1.编写声明不同数据类型变量的程序文件 KY2_1.java,源代码如下。
? public class KY2_1 {
??? public static void main(String args[]) {
????? byte b=0x55;
????? short s=0x55ff;
????? int i=1000000;
? long l=0xffffL;
????? char c='a';
????? float f=0.23F;
????? double d=0.7E-3;
????? boolean B=true;
????? String S="这是字符串类数据类型";
????? System.out.println("字节型变量 b = "+b);
????? System.out.println("短整型变量 s = "+s);
????? System.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.建立 KY2_2.java 文件,通过本程序了解变量的使用范围,源代码如下。
???? public class KY2_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.编译 KY2_2.java
? 此时会出现错误提示。因为变量 k 在方法块中声明,在方法块之外它是不存在的, 所以编译时会出错。
? 3.修改上面的程序。
? 4.成功运行该程序。
? 思考:KY2_2.java 程序说明了什么问题?
(三) 使用关系运算符和逻辑运算符
??? 1.建立使用关系运算符和逻辑运算符的程序文件,源代码如下。
????? class KY2_3 {
??????? public static void main(String args[]) {
????????? int a=25, b=20, e=3, f=0;
????????? boolean d=a????????? System.out.println("a=25,b=20,e=3,f=0");
????????? System.out.println("因为关系表达式 a????????? if (e!=0 && a/e>5)
???????????? System.out.println("因为 e 非 0 且 a/e 为 8 大于 5,所以输出? a/e= "+a/e);
????????? if (f!=0 && a/f>5)
???????????? System.out.println("a/f = "+a/f);
????????? else
??????????? System.out.println("因为 f 值为 0,所以输出 f = "+f);
??????? }
????? }
????? 2.编译并运行该程序,结果如图 2.3 所示。
(四) 使用表达式语句与复合语句
? 1. 建立包含表达式语句程序,源代码如下。
????? class KY2_4{
????????? 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 KY2_5{
????????? public static void main(String args[]) {
????????? int k, i=3, j=4;
????????? k=i+j;
????????? System.out.println("在复合块外的输出 k="+k);
??????????? {
????????????? float f;
????????????? f=j+4.5F;
????????????? i++;
????????????? System.out.println("在复合块内的输出 f="+f);
????????????? System.out.println("在复合块内的输出 k="+k);
??????????? }
??????????? System.out.println("在复合块外的输出 i="+i);
????????? }
????? }
? 3. 编译并运行上述两个源程序
? 4. 将变量 i 在块内定义会怎样?改变其他变量的位置看看会发生什么变化。
? 思考:指出程序的复合结构以及变量的使用范围。
(五) 使用选择语句
? 1.使用 if...else 语句
¨?程序功能:使用 if...else 语句构造多分支,判断某一年是否为闰年。闰年的条件是符合下面二者之一:能被 4 整除,但不能被 100 整除;能被 4 整除,又能被 100 整除。
¨?编写源程序文件,代码如下。
??? public class KY2_6 {
??????? public static void main(String args[]) {
????????? boolean leap;
????????? int year=2005;
????????? if ((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
???????????? System.out.println(year+" 年不是闰年");
????????? year=2050; // 方法 3
????????? if (year%4==0) {
???????????? if (year%100==0) {
?????????????? if (year%400==0)
???????????????? leap=true;
?????????????? else
???????????????? leap=false;
????????????? }
????????? else
???????????? leap=false;
?????? }
??? else
?????? leap=false;
??? if (leap==true)
?????? System.out.println(year+" 年是闰年");
??? else
?????? System.out.println(year+" 年不是闰年");
?? }
? }
¨?编译运行程序
思考:本程序中有几个选择语句,哪些具有嵌套关系?
2.使用 switch 语句
¨?程序功能:在不同温度时显示不同的解释说明。
¨?程序源代码如下。
?? class KY2_7{
???????? public static void main(String args[]) {
???????? int c=38;
???? switch (c<10?1:c<25?2:c<35?3:4) {
????????? case 1:
???????????? System.out.println(" "+c+"℃ 有点冷。要多穿衣服。");
????????? case 2:
???????????? System.out.println(" "+c+"℃ 正合适。出去玩吧。");
????????? case 3:
???????????? System.out.println(" "+c+"℃ 有点热。");
????????? default:
??????????? System.out.println(" "+c+"℃ 太热了!开空调。");
??????? }
????? }
?? }
¨?编译运行程序
(六) 使用循环语句
? 1. for 循环语句练习
¨?程序功能:按 5 度的增量打印出一个从摄氏温度到华氏温度的转换表。
¨?程序源代码如下。
??????? class KY2_8{
??????????? public static void main (String args[]) {
????????????? int h,c;
????????????? System.out.println("摄氏温度 华氏温度");
????????????? for (c=0; c<=40; c+=5) {
??????????????? h=c*9/5+32;
??????????????? System.out.println(" "+c+"????????? "+h);
????????????? }
??????????? }
??????? }
¨?编译并运行程序,其结果如图 2.9 所示。
? 2. while 循环语句练习
¨?程序功能:运行程序后从键盘输入数字 1/2/3 后,可显示抽奖得到的奖品;如果输入其它数
¨?字或字符显示“没有奖品给你!”。
¨?程序源代码如下。
????? import java.io.*;
????? class KY2_9 {
????????? public static void main(String args[]) throws IOException {
??????????? char ch;
?????? System.out.println("按 1/2/3 数字键可得大奖!");
?????? System.out.println("按空格键后回车可退出循环操作.");
?????? while ((ch=(char)System.in.read())!=' ')
?{
???????? System.in.skip(2);???? // 跳过回车键
???????? switch (ch) {
?????????? case '1':
???????????? System.out.println("恭喜你得大奖,一辆汽车!");
???????????? break;
?????????? case '2':
???????????? System.out.println("不错呀,你得到一台笔记本电脑!");
???????????? break;
?????????? case '3':
???????????? System.out.println("没有白来,你得到一台冰箱!");
???????????? break;
?????????? default:
???????????? System.out.println("真不幸,你没有奖品!下次再来吧。");
???????? }
?????? }
???? }
?? }
¨?编译源程序。
¨?在命令提示符窗口运行程序,然后分别按 1、2、3、r ,记录结果。
? 3.do…while 循环语句练习
¨?程序功能:求 1+2+…+100 之和,并将求和表达式与所求的和显示出来。
¨?程序源代码如下。
?????????? class KY2_10 {
???????????? public static void main(String args[]) {
??????????????? int n=1, sum=0;
??????????????? do {
???????????????????????? sum+=n++;
???????????????? }
??????????????? while (n<=100);
??????????????? System.out.println("1+2+...+100 ="+sum);
????????????? }
?????????? }
¨?编译并运行程序
? 4.多重循环练习
¨?输出九九乘法表的程序,源代码如下。
???? public class KY2_11
???? {
????? public static void main(String args[])
???????? {
????????? int i,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.println();
?????? }
?? }
}
¨?编译并运行程序
评论