Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将x的每个倍数添加到C中的一个答案变量#_C# - Fatal编程技术网

C# 将x的每个倍数添加到C中的一个答案变量#

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

我正在编写一个应用程序,其中4和6的每一个倍数都被添加到名为answer的总变量中。
我收到此错误,“当前上下文中不存在名称'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
Move
int-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);
        }
    }
}