一、实验目的:
1. 了解 Java 的数据类型
2. 掌握各种变量的声明方式及其使用范围。
3. 理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
二、实验环境:
一台配置有java环境,装有eclipse的电脑。
三、实验内容:
(一) 实验要求
1. 编写一个声明 Java 不同数据类型变量的程序。
2. 编写一个关于变量的使用范围的程序。
3. 编写使用选择结构的程序。
4. 编写使用循环结构的程序。
(二) 声明不同数据类型的变量
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. 试编写数据类型转换程序。讨论自动类型转换和强制类型转换的实例。
package ch1;
public class KY2_1 {
public static void main(String[] args) {
byte b=0x55;
short s=0x55ff;
long l=0xffffL;
char c='a';
float f=0.23F;
int i=(int)f;
double d=l;
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);
}
}
(三) 了解变量的使用范围
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
看看这个程序是否会出错?为什么会出现编译错误,请在试验报告中给出理由!
答:会出错。因为主函数是static的成员方法,在此之前不会产生任何对象,不能访问非static变量。
3.修改上面的程序,让它能正确运行。
4.把修改后的源程序以及程序的输出结果写在实验报告中。
public class KY2_2 {
static int i=10, k=10;
public static void main(String[] args) {
{
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
看看这个程序是否会出错?如果出错,请在试验报告中解释为什么?
答:出错了。因为swith语句中没有遇到break则继续执行接下来的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;
case 4:
System.out.println(""+c+"℃ 太热了!开空调。");
break;
}
}
}
(五) 使用循环语句
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 i=1,sum=1;
System.out.print(""+i);
for(i=2;i<=100;i++)
{
sum=sum+i;
System.out.print("+"+i);
}
System.out.print("="+sum);
}
}