若局部变量和全局变量同名,则在局部变量的作用域内全局变量会被隐藏,即不再起作用了。
但是您的程序,是在一个局部范围内,定义了两个变量x,所以,您程序的第一个错误是由“变量重复定义”引起的。
范例1:他们需要分居。[code=java]package org.cxy.demo;
public class Demo{
public static void main(String[] args) {
{
int x = 12;
System.out.println("x="+x);
}
{
int x = 3;
System.out.println("x="+x);
}
}
}[/code]第一个x和第二个x分别属于main方法中的不同的子块。 当程序流程执行完第一个块内的代码时,该块内的所有变量都将消失。
因此,执行到第二个块时,不会出现“变量重复定义”。
但是,您的代码,类似于如下:
范例2:他们居然视图同居。[code=java]package org.cxy.demo;
public class Demo{
public static void main(String[] args) {
int x = 12;
{
int x = 3;
System.out.println("x="+x);
}
}
}[/code]此时第一个x属于main方法块,只有在main方法结束后,他才会消失。而程序执行到第二个x时,第一个x并没有消失。
您的第二个错误,是代码缩进不规范导致的。
范例3:仔细看看吧。[code=java]package org.cxy.demo;
public class Demo{
public static void main(String[] args) {
int x = 3;
{
int q = 96;
}
q = x;//应该这是这有问题 大家给看看这么改才能让这个程序 顺利运行
}
}[/code]当q所在的块被执行完毕后,那么q就消失了,因此在块的外面无法访问到q。
提示:复制代码后,将代码放入记事本中,使用替换功能,可以将 替换成“ ”字符。 |