小菜鸟问题---整型变量初始化的问题 int n;for(int i=0; i<5; i++) n = i;Console.Writeline(n);请好心人帮助我解释两个非常基础的问题:1.>变量n在for 循环中已经赋值了,为啥在进行输出时告知未被初始化?2.>变量在使用前必须初始化, 这句话该如何理解? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int n;for(int i=0; i<5; i++) n = i;Console.Writeline(n);-----》int n;for(int i=0; i<5; i++) {n = i;}Console.Writeline(n);n for 循环内部被初始化。出来for 还是没有初始化的 int n=0;for(int i=0; i<5; i++){ n = i;Console.Writeline(n);} int n;for(int i=0; i<5; i++){ n = i;Console.Writeline(n);} 请问有经验的高手们:变量初始化需要考虑初始化的范围吗?比方像1楼高手所说,在for中进行了初始化,但是for结束后n依然没被初始化。谁能具体解释下。我太菜鸟了。 int n; // 你这必须给n个初始值 因为你在下面要 n=i 否则 会处错误for(int i=0; i<5; i++) n = i; Console.Writeline(n);for 赋给的值 不算是初始值 C# 你用的应该是VS VS里运行应该有提示的这个 刚才我没太细看你的题 sorry 现在回答问题1. 你的 n 刚开始没有赋值 int n 这段 你得给他一个值2. 你 使 n=i 这就是使用n 这就是调用 所以在调用前必须赋初始值 int n =10; //赋值 晕。误人子弟。加上注释先//定义变量nint n;//循环5次,每次给n赋值为ifor(int i=0; i<5; i++) n = i;//循环结束后打印nConsole.WriteLine(n);从逻辑上,这个没有任何问题,但是编译器并没有那么智能,无法识别for中条件执行次数是否是0次,所以这里的赋值,在编译器是忽略的,而第一次是Console.WriteLine(n);使用的,在此之前忽略for中的赋值,就只有int n;这一句了。所以编译器认为,你使用了一个没有初始化的值类型变量。 14楼 说的挺明白了 编译器也不是想象的那么智能 要是你的for循环不执行呢 比如改成int n;//for 循环没执行for(int i=0; i>5; i++){ n = i;}//这时候就读不出来 n的值了 所以要进行初始化Console.Writeline(n);这样for循环没执行 也就读不出n的值 虽然你写的for循环执行了 但是编译器可不知道..... 14L 说的很明白!!!UP!! 循环内的赋值,编译器不认为是赋值,因为可能循环内部代码没有被执行;另外一个例子,switch语句,在case中定义变量,编译时就会报错了。 新出炉的菜鸟大送分啦,大家过来看啊,先到先得啊^_^ C#的,怎么写一个手机阅读器 32位OS和64位下同样的dll但名字不同 导入怎样解决? 请问怎么实现VB.NET中"ListBox1.Items.Item(1)"的功能? 在多线程中调用TreeView.Nodes.Add(...)出错,请高手帮忙 c# CS结构 如何取得COM口装备 自定义报表 如何判断删除文件失败!!! 公司要测试一下.net开发,请问有无测试版的vs.net2003下载 如何读入一个文本文件? sql怎么在里面去除空格 莫名其妙的数据库异常
for(int i=0; i<5; i++)
n = i;
Console.Writeline(n);-----》
int n;
for(int i=0; i<5; i++)
{n = i;}
Console.Writeline(n);n for 循环内部被初始化。
出来for 还是没有初始化的
for(int i=0; i<5; i++)
{
n = i;
Console.Writeline(n);
}
for(int i=0; i<5; i++)
{
n = i;
Console.Writeline(n);
}
变量初始化需要考虑初始化的范围吗?
比方像1楼高手所说,在for中进行了初始化,但是for结束后n依然没被初始化。
谁能具体解释下。
我太菜鸟了。
for(int i=0; i<5; i++)
n = i;
Console.Writeline(n);for 赋给的值 不算是初始值
C# 你用的应该是VS VS里运行应该有提示的这个
1. 你的 n 刚开始没有赋值 int n 这段 你得给他一个值
2. 你 使 n=i 这就是使用n 这就是调用 所以在调用前必须赋初始值
加上注释先
//定义变量n
int n;
//循环5次,每次给n赋值为i
for(int i=0; i<5; i++)
n = i;
//循环结束后打印n
Console.WriteLine(n);从逻辑上,这个没有任何问题,但是编译器并没有那么智能,无法识别for中条件执行次数是否是0次,所以这里的赋值,在编译器是忽略的,而第一次是
Console.WriteLine(n);
使用的,在此之前忽略for中的赋值,就只有int n;这一句了。所以编译器认为,你使用了一个没有初始化的值类型变量。
比如改成
int n;//for 循环没执行
for(int i=0; i>5; i++)
{
n = i;
}
//这时候就读不出来 n的值了 所以要进行初始化
Console.Writeline(n);
这样for循环没执行 也就读不出n的值 虽然你写的for循环执行了 但是编译器可不知道.....
UP!!