为什么我得到“使用未分配的局部变量”错误?

时间:2013-09-11 21:33:08

标签: c# version-control

我试着做一件简单的事,它给了我一个错误。错误是:

  

使用未分配的局部变量“answer”

我哪里出错了?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1

{
    class Program
    {
    static void Main(string[] args)
    {

        int l;
        int w;
        int h;
        Console.WriteLine("Please Enter th points");
        Console.Write("Length: ");
        l = int.Parse(Console.ReadLine());
        Console.Write("Width: ");
        w = int.Parse(Console.ReadLine());
        Console.Write("Height: ");
        h = int.Parse(Console.ReadLine());

        int answer;
        Console.WriteLine("Enter what you want to Do [S,P,V]");
        string cupSize = Console.ReadLine();
        switch (cupSize)
        {
            case "s":
                answer = (l * w);
                break;
            case "S":
                answer = (l * w);
                break;
            case "p":
                answer = ((l + w) * 2);
                break;
            case "P":
                answer = ((l + w) * 2);
                break;
            case "v":
                answer = (l * w * h);
                break;
            case "V":
                answer = (l * w * h);
                break;
            default:
                Console.WriteLine("Try agian");
                break;
        }

        if (answer != 0)
        {
            Console.WriteLine("The answer is " + answer );
        } 
    }
}
}

4 个答案:

答案 0 :(得分:4)

您必须在每个可能的代码路径中设置answer的值,但如果您的switch - 阻止转到default,则不会设置它。

在声明时设置值:

int answer = 0;

或在default案例中:

default:
    answer = 0;
    Console.WriteLine("Try agian");
    break;

答案 1 :(得分:1)

由于错误试图告诉您,该变量不一定具有值。

如果您的代码遇到default:案例,则无法分配。

答案 2 :(得分:1)

你需要设置答案变量试试这个

int answer = 0;

答案 3 :(得分:0)

您正在尝试设置未初始化的int。

设置int answer = 0;