(一)、声明不同数据类型的变量
1. 把程序的输出结果写在实验报告中。如果不给上面程序中的变量赋初始值的话,看看该程序是否还能正确运行?如果不可以,请指出为什么?
答:不能正确运行。Java中的变量分为局部变量和全局变量,局部变量就是在方法中声明的变量,而全局变量就是在类中声明的变量,声明在方法中的变量在使用时必须要初始化
2. 试编写数据类型转换程序。讨论自动类型转换和强制类型转换的实例。(基本数据类型按精度从低到高排列:byte、short、char、int、long、float、double)
答:当把级别低的变量赋给级别高的变量时,系统自动完成数据类型的转换。
当把级别高的变量赋给级别低的变量时,必须使用类型转换运算。
(二)了解变量的使用范围
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
看看这个程序是否会出错?为什么会出现编译错误
答:会,k属于局部变量,只适用于public static void main这一部分
3.修改上面的程序,让它能正确运行。
4.把修改后的源程序以及程序的输出结果写在实验报告中。
源程序:public class KY2_2 {
static int i=10;
static int k=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 程序说明了什么问题?
没有很好地区分全局变量和局部变量的区别。
a. 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等
b. 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区
c. 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了
d. 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量
(三) 使用选择语句
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里面的语句,知道碰到break语句为止。
4.修改上面的程序,让它能正确运行。把修改后的源程序以及程序的输出结果写在实验报告中。
源程序:public 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 i=1;
int sum=0;
for(i=1;i<=100;i++)
{
sum=sum+i;
}
System.out.println("1+2+....+100="+sum);
}
}