6 回答

TA贡献1820条经验 获得超9个赞

TA贡献1719条经验 获得超6个赞

TA贡献1817条经验 获得超6个赞
每次循环可以当一个作用域吧,第二个是在同一个作用域里有两个相同变量名了,肯定是不行的吧。
把第二个变量名改下就好了吧。
补充:你这个变量是循环内部的一个局部变量,你可以这么认为:这一次的循环和下一次的循环不在同一个作用域,所以你本质上是在不同的作用域创建了相同的名称的变量。

TA贡献1804条经验 获得超7个赞
while (true) {
int localValue = 100;
// int localValue = 200; // ERROR!在当前作用域,已经存在名为 localValue 的变量,不可重复声明变量
}
int localValue = 200; // OK!当前作用域没有名为 localValue 的变量

TA贡献1998条经验 获得超6个赞
实际上这个只是变量重复声明错误
ServerThread serverThread = new ServerThread(socket);
//serverThread 已经被声明你是无法再次声明。
serverThread = new ServerThread(socket);
你如果说这个的话就和大家说的一样serverThread变量实际上在一次循环后就会被销毁,再来到
ServerThread serverThread = new ServerThread(socket);
的时候serverThread实际上已经不存在了所以可以被重新声明
添加回答
举报