刚学问一个作用域的问题
代码1.申明string类型变量text,在for循环中初始化text,然后在for循环中输出text的值,不会报错。static void Main(string[] args)
{
int i;
string text;
for (i = 0; i < 10; i++) {
text = "Line" + Convert.ToString(i);
Console.WriteLine("{0}", text);
}
Console.ReadKey();
}
代码2.申明string类型变量text,并初始化值为空。然后在for循环中给text赋值,并显示text的值。最后在for循环外显示出text的最终结果,不会报错。
static void Main(string[] args)
{
int i;
string text="";
for (i = 0; i < 10; i++) {
text = "Line" + Convert.ToString(i);
Console.WriteLine("{0}", text);
}
Console.WriteLine("Last text output in loop:{0}", text);
Console.ReadKey();
}
}
代码3.申明string类型变量text,在for循环中初始化text,然后在for循环中输出text的值,最后在
for循环外显示出text的最终结果,结果报错。并提示,使用了未赋值的局部变量"text"。
static void Main(string[] args)
{
int i;
string text;
for (i = 0; i < 10; i++) {
text = "Line" + Convert.ToString(i);
Console.WriteLine("{0}", text);
}
Console.WriteLine("Last text output in loop:{0}", text);
Console.ReadKey();
}
代码3中,text在for循环中初始化,赋给text的值在for循环结束时就会丢失。
代码2中,for循环外初始化后再在for循环中改变他的值。
这是否说明,for循环无法更改未初始化变量的值?
如果是,那么代码1中for循环操作的“变量text”,是什么?
[ 本帖最后由 q332010372 于 2011-8-3 22:17 编辑 ]