建立 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 看看这个程序是否会出错?为什么会出现编译错误,请在试验报告中给出理由! 3.修改上面的程序,让它能正确运行。 4.把修改后的源程序以及程序的输出结果写在实验报告中。 思考:KY2_2.java 程序说明了什么问题?
时间: 2024-02-14 13:05:47 浏览: 136
回答:
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的作用域只在代码块内,超出了代码块后就无法访问了。在第11行和第12行中,需要访问变量k,但是变量k在第8行的代码块中定义,因此在第11行和第12行中就无法找到变量k,编译器会报错。
3. 修改后的程序如下:
```
public class KY2_2 {
static int i=10;
public static void main(String args[]) {
int k;
{
k=10;
System.out.println("i="+i);
System.out.println("k="+k);
}
System.out.println("i="+i);
System.out.println("k="+k);
}
}
```
4. 程序的输出结果如下:
```
i=10
k=10
i=10
k=10
```
可以看到,程序运行正常,输出了变量i和k的值。
思考:KY2_2.java程序说明了变量的使用范围。在Java中,变量的作用域是由它所在的代码块决定的。在代码块内部定义的变量只能在代码块内部访问,超出了代码块就无法访问了。在KY2_2.java程序中,变量k的作用域只在代码块内部,超出了代码块就无法访问了,因此需要在代码块外部定义变量k,才能访问变量k的值。
阅读全文