我已经声明了一个整数数组,其中我存储了一个数字的因子.....我希望该数组在它的元素中打印数字,但我也失败了;有没有办法访问数组及其声明循环之外的元素?
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Enter number : ");
int num = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= num; i++)
{
int[] factor = new int[i];
if (num % i == 0)
{
Console.WriteLine("Number going in i: " + i);
factor[i - 1] = i;
};
}
//Not working
for (int i = 0; i < factor.length; i++)
{
Console.WriteLine(factor[i]);
}
}
}
答案 0 :(得分:3)
第一个factor
循环中的for
仅存在于for循环的范围内。第一个循环也会在每次迭代时覆盖数组。
您需要在父范围内声明并初始化它。
int[] factor = new int[num];
for (int i = 1; i <= num; i++)
{
factor[i] ...
}
for (int i = 1; i <= factor.length; i++)
{
factor[i] ...
}
答案 1 :(得分:0)
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Enter number : ");
int num = Convert.ToInt32(Console.ReadLine());
int[] factor ; // <-- out of for loop
for (int i = 1; i <= num; i++)
{
factor = new int[i];
if (num % i == 0)
{
Console.WriteLine("Number going in i: " + i);
factor[i - 1] = i;
};
}
//Not working
for (int i = 0; i < factor.length; i++)
{
Console.WriteLine(factor[i]);
}
}
}
答案 2 :(得分:0)
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Enter number : ");
int num = Convert.ToInt32(Console.ReadLine());
int[] factor ;
for (int i = 1; i <= num; i++)
{
factor = new int[i];
if (num % i == 0)
{
Console.WriteLine("Number going in i: " + i);
factor[i - 1] = i;
};
}
//Not working
for (int i = 0; i < factor.length; i++)
{
Console.WriteLine(factor[i]);
}
}
}
请参阅此链接了解scopes