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 看看这个程序是否会出错?为什么会出现编译错误,请在试验报告中给出理由!
时间: 2024-02-14 14:04:30 浏览: 28
根据提供的源代码,程序在编译时会出现错误。错误的原因是变量k的作用域仅限于代码块中,而在代码块外部无法访问变量k。因此,当尝试在代码块外部访问变量k时,编译器会报告错误。具体来说,以下语句会导致编译错误:
```
System.out.println("k="+k);
```
因为变量k在代码块外部无法访问。正确的做法是将变量k声明在代码块外部,或者在代码块内部不尝试访问变量k。
相关问题
建立 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 程序说明了什么问题?
回答:
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的值。
1.请编写程序 KY2_4.java,要求程序具有如下功能:求 1+2+…+100 之和,并将求和表达式与所求的和都显示出来,即程序的输出结果应该为:1+2+…+100=5050。 2.编译 KY2_4.java 3.运行KY2_4.class 4.把源程序写在实验报告中。
答案:
1. KY2_4.java程序代码如下:
```java
public class KY2_4 {
public static void main(String[] args) {
int sum = 0;
String str = "";
for (int i = 1; i <= 100; i++) {
sum += i;
str += i;
if (i < 100) {
str += "+";
}
}
System.out.println(str + "=" + sum);
}
}
```
2. 在命令行窗口中进入程序所在目录,执行javac KY2_4.java命令进行编译。如果编译成功,会在当前目录下生成一个KY2_4.class文件。
3. 在命令行窗口中执行java KY2_4命令运行程序。程序的输出结果为:
```
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100=5050
```
4. 源程序已在第一项中给出。