我试着做一件简单的事,它给了我一个错误。错误是:
使用未分配的局部变量“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 );
}
}
}
}
答案 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;