【问题标题】:c# console application unassigned local variable [duplicate]c#控制台应用程序未分配的局部变量[重复]
【发布时间】:2015-07-07 22:00:01
【问题描述】:
        int ValueOne, ValueTwo, Numchar, Total;
    Console.WriteLine("This Is A Program For doing any Of the four mathematical Proccesses");
    Console.WriteLine("You can Add , substract , Divide And Multiply");
    Console.WriteLine("When Asked Please Type The Values Or The Proccesses You Want.");
    Console.WriteLine("Please Type The First Value");
    ValueOne = Convert.ToInt32((Console.ReadLine()));
    Console.WriteLine("Please Type The Second Value");
    ValueTwo = Convert.ToInt32((Console.ReadLine()));
    Console.WriteLine("Please Enter The Number Of The Proccess/Character You Want Meaning That (1 = +) , (2 = -) , (3 = *) , (4 = /)");
    Numchar = Convert.ToInt32((Console.ReadLine()));
    if (Numchar == 1)
        Total = ValueOne + ValueTwo;
    if (Numchar == 2)
        Total = ValueOne + ValueTwo;
    if (Numchar == 3)
        Total = ValueOne * ValueTwo;
    if (Numchar == 4)
        Total = ValueOne / ValueTwo;
    Console.WriteLine("The Total Is :");
    Console.WriteLine(Total);
    Console.ReadLine();

Console.WriteLine(Total); 最后显然是一个未分配的局部变量,尽管它应该从“如果”行下方的行中分配,还请注意,我是 Visual Studio 的新手,我刚刚开始学习课程,而且,我不认为这是重复的,因为其他帖子的修复对我不起作用。

【问题讨论】:

  • 如果 Numchar 为 5,Total 的值是多少?这是编译器的一个问题,这个问题有重复令人作呕。
  • 如果 numchar == 5 或更高,它将永远不会被分配。所以它抛出一个错误
  • 你试过什么“没用”?

标签: c# visual-studio visual-studio-2012 console-application


【解决方案1】:

假设您的代码没有产生错误,并且编译并运行。如果NumChar 不是1234,你认为会发生什么?

您的代码永远不会到达ifs 中的任何语句,并且永远不会为Total 分配初始值。由于在您的程序下这是完全可能的(并且通常无法检查 - 请参阅停止问题),因此该错误已得到证实且是必要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    相关资源
    最近更新 更多