对我来说,循环一遍又一遍地重复一些指令,所以如果我的代码是这样的:
int i = 0;
while(i<3){
System.out.println("Hello world!");
}
对我来说,我这样写了3次相同的指令:
System.out.println("Hello world!");
System.out.println("Hello world!");
System.out.println("Hello world!");
我错了吗?
所以,如果我的代码是这样的:
int i = 0 ;
while(i < 3){
TextView textView = new TextView(this);
}
对我来说,我这样写了3次这样的指令:
TextView textView = new TextView(this);
TextView textView = new TextView(this);
TextView textView = new TextView(this);
不是吗?
所以,当我写这段代码时,乳清:
TextView textView = new TextView(this);
TextView textView = new TextView(this);
它给了我一个错误,因为我重复了两次相同的名字(textView),但在这样的循环中编写相同的东西不会给我一个错误
int i = 0 ;
while(i < 2){
TextView textView = new TextView(this);
}
即使是同样的事情也是如此。
我在理解事物(循环)或什么方面有什么问题吗?
答案 0 :(得分:0)
每次循环结束时,旧的TextView
将被销毁,并且正在创建一个新的<m:MaterialHeader>
<m:MaterialNavBar activates="sidenav">
<m:MaterialNavBrand layoutPosition="FIXED" text="Academia de baile Nuria Villamuelas"
centerOn="CENTER_ON_SMALL"
textColor="INDIGO_DARKEN_4"/>
<m:MaterialNavSection float="RIGHT">
<m:MaterialLink text="Link 1"/>
<m:MaterialLink iconType="POLYMER"/>
</m:MaterialNavSection>
</m:MaterialNavBar>
</m:MaterialHeader>
。这没有问题,因为一旦循环结束,它就会永远消失。
如果您只是将三个声明堆叠在一起,它们不会被销毁,而是这三个声明都将保留在内存中,并且具有两个具有相同名称的变量是非法的(出于显而易见的原因)。
答案 1 :(得分:0)
关于可变范围。您不能在同一范围内声明相同的名称变量。
while(i < 2){
// this variable's scope is this loop. Outside this loop it is not recognized
TextView textView = new TextView(this);
}
您的代码等于:
while(i < 2){
new TextView(this);
}
答案 2 :(得分:0)
这不是特定于Android的问题,而是一般的JAVA概念
如果你定义
int a=3;
int a=3;
int a=3;
会抛出错误 但 如果你创建一个循环
while(i<3)
{
int a=3;
}
它不会抛出错误
每次循环结束时,它都会破坏先前的对象,因此在每次迭代时都会对其进行初始化