C# 将x的每个倍数添加到C中的一个答案变量#
我正在编写一个应用程序,其中4和6的每一个倍数都被添加到名为answer的总变量中。C# 将x的每个倍数添加到C中的一个答案变量#,c#,C#,我正在编写一个应用程序,其中4和6的每一个倍数都被添加到名为answer的总变量中。 我收到此错误,“当前上下文中不存在名称'sum'”它发生在Console.WriteLine(sum) 类程序 { 静态void Main(字符串[]参数,int-answer) { //局部变量 int i; int-total=0; //初始化控制台 Console.WriteLine(“输入一个开始的数字”); 字符串输入=Console.ReadLine(); //从字符串输入创建整数 int numb
我收到此错误,“当前上下文中不存在名称'sum'”
它发生在Console.WriteLine(sum)
类程序
{
静态void Main(字符串[]参数,int-answer)
{
//局部变量
int i;
int-total=0;
//初始化控制台
Console.WriteLine(“输入一个开始的数字”);
字符串输入=Console.ReadLine();
//从字符串输入创建整数
int number=int.Parse(输入);
//寻找倍数的For循环
对于(i=0;i
每个局部变量都存在于其声明的范围内{…}
:
您必须在if语句中声明变量sum,因为当代码从if语句中取出时,该变量仅在if语句中已知程序不知道sum…在这种情况下,程序仅在if语句中知道sum,您面临这样的错误,因为
sum
在if
范围内声明,并且在范围外不可见。您应该将sum
变量声明移出if
范围,使其对Console.WriteLine(…)
方法可见
但正如您所提到的,您只需要存储一个总数。所以这里甚至不需要sum
变量,因为这里有total
变量
那么让我们像这样重写这段代码:
class Program
{
static void Main(string[] args, int answer)
{
//Local Variables
int i;
int total = 0;
//Initialize Console
Console.WriteLine("Enter a number to begin");
string input = Console.ReadLine();
//Create integer from string input
int number = int.Parse(input);
//For Loop Looking for Multiples
for (i = 0; i < number; i++)
{
if (i % 4 == 0 || i % 6 == 0)
{
total += i;
}
Console.WriteLine(total);
}
}
}
类程序
{
静态void Main(字符串[]参数,int-answer)
{
//局部变量
int i;
int-total=0;
//初始化控制台
Console.WriteLine(“输入一个开始的数字”);
字符串输入=Console.ReadLine();
//从字符串输入创建整数
int number=int.Parse(输入);
//寻找倍数的For循环
对于(i=0;i
Moveint-sum代码>循环外您正在if
语句内部定义sum
,然后在语句关闭后尝试访问它。这是无效的,因为sum
不存在于if
语句的范围之外。这里有一篇关于这个问题的好文章。
if (i % 4 == 0 || i % 6 == 0)
{ // <- Scope of sum begins here
int sum;
sum = total + i;
} // <- Scope of sum ends here
Console.WriteLine(sum); // <- sum doesn't exists here (out of scope)
//DONE: , int answer dropped
static void Main(string[] args)
{ // <- now sum scope begins here
...
int sum = 0;
for (i = 0; i < number; i++)
{
if (i % 4 == 0 || i % 6 == 0)
{
//DONE: you probably want to add i to sum, not to total
sum = sum + i;
}
Console.WriteLine(sum);
}
} // <- sum scope ends here
class Program
{
static void Main(string[] args, int answer)
{
//Local Variables
int i;
int total = 0;
//Initialize Console
Console.WriteLine("Enter a number to begin");
string input = Console.ReadLine();
//Create integer from string input
int number = int.Parse(input);
//For Loop Looking for Multiples
for (i = 0; i < number; i++)
{
if (i % 4 == 0 || i % 6 == 0)
{
total += i;
}
Console.WriteLine(total);
}
}
}