C#学习笔记:结构变量中的作用域
static void main()
{
int i;
for(i=0;i<10;i++)
{
string text="Line"+Covert.ToString(i);
Console.WriteLine("{0}",text);
}
Console.WriteLine("Last text output in loop:{0}",text);
Console.ReadKey();
}
{
int i;
for(i=0;i<10;i++)
{
string text="Line"+Covert.ToString(i);
Console.WriteLine("{0}",text);
}
Console.WriteLine("Last text output in loop:{0}",text);
Console.ReadKey();
}
字符串常量text是for循环里面的局部变量,这段代码不能编译,在循环外部调用了该变量,超过了循环的作用域,修改代码如下:
static void main()
{
int i;
string text;
for(i=0;i<10;i++)
{
string text="Line"+Covert.ToString(i);
Console.WriteLine("{0}",text);
}
Console.WriteLine("Last text output in loop:{0}",text);
Console.ReadKey();
}
{
int i;
string text;
for(i=0;i<10;i++)
{
string text="Line"+Covert.ToString(i);
Console.WriteLine("{0}",text);
}
Console.WriteLine("Last text output in loop:{0}",text);
Console.ReadKey();
}
这段代码也会失败,是因为声明的变量没有初始化,循环内的初始化在循环结束后失效,修改代码如下:
static void main()
{
int i;
string text="";
for(i=0;i<10;i++)
{
string text="Line"+Covert.ToString(i);
Console.WriteLine("{0}",text);
}
Console.WriteLine("Last text output in loop:{0}",text);
Console.ReadKey();
}
{
int i;
string text="";
for(i=0;i<10;i++)
{
string text="Line"+Covert.ToString(i);
Console.WriteLine("{0}",text);
}
Console.WriteLine("Last text output in loop:{0}",text);
Console.ReadKey();
}
作者:Jason_z(开发者的网上家园 - 博客园)
出处:http://www.cnblogs.com/Jason_z/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。