第二次试验:Java语言基础练习
一、实验目的:
1. 了解 Java 的数据类型
2. 掌握各种变量的声明方式及其使用范围。
3. 理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
二、实验环境:
Windows下java SE。
三、实验内容:
(一) 声明不同数据类型的变量
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. 编译并运行该程序
3. 把程序的输出结果写在实验报告中。如果不给上面程序中的变量赋初始值的话,看看该程序是否还能正确运行?如果不可以,请指出为什么?
如果不给上面程序中的变量赋初始值的话,程序不能正确运行。
因为变量没有被初始化。
4. 试编写数据类型转换程序。讨论自动类型转换和强制类型转换的实例。
public class Hello { public static void main(String args[]) { int a1=100; long a2=a1; //自动转换 long b1=1000; int b2=(int)b1; //强制转换 System.out.println("a1 = "+a1); System.out.println("a2 = "+a2); System.out.println("b1 = "+b1); System.out.println("b2 = "+b2); } }
下列这些类型按精度从低到高排列:
Byte short char int long float doube
当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。
当把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算,格式如下:
(类型名)要转换的值;
例如:
int x = ( int ) 34.89 ;
(二) 了解变量的使用范围
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); } }
2.编译 KY2_2.java,看看这个程序是否会出错?为什么会出现编译错误,请在试验报告中给出理由!
会出错。后面的System.out.println("k="+k);的k是局部变量,在这里没有定义,所以会出错。
3.修改上面的程序,让它能正确运行。
4.把修改后的源程序以及程序的输出结果写在实验报告中。
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); } }
5. 试着自己编写程序体会局部变量和成员变量初始化的问题。
思考:KY2_2.java 程序说明了什么问题?
说明了变量是有作用范围的,在变量的作用范围外不能使用这个变量。
(三) 使用选择语句
1. 程序功能:使用 switch 语句在不同温度时显示不同的解释说明。
2. 程序源代码如下。
class KY2_3{ public static void main(String args[]) { int c=18; 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+"℃ 太热了!开空调。"); } } }
3.编译 KY2_3.java,看看这个程序是否会出错?如果出错,请在试验报告中解释为什么?
会出错。每个case后面都要有break;,不然它执行完case后,如果后面还有case,后面的case也会执行一次。
4.修改上面的程序,让它能正确运行。把修改后的源程序以及程序的输出结果写在实验报告中。
class KY2_3{ public static void main(String args[]) { int c=18; switch (c<10?1:c<25?2:c<35?3:4) { case 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+"℃ 太热了!开空调。"); } } }
(四) 使用循环语句
1.请编写程序 KY2_4.java,要求程序具有如下功能:求 1+2+…+100 之和,并将求和表达式与所求的和都显示出来,即程序的输出结果应该为:1+2+…+100=5050。
2.编译KY2_4.java
3.运行KY2_4.class
4.把源程序写在实验报告中。
public class KY2_4 { public static void main(String args[]) { int sum=0; for(int i=1;i<=100;i++) { sum=sum+i; if(i==100) System.out.print(i); else System.out.print(i+"+"); } System.out.println("="+sum); } }