C#代码 错误 使用了未赋值的局部变量“a”“b”“d”“f”

privatevoidbutton1_Click(objectsender,EventArgse){OleDbConnectionconn=newOleDbConnect... private void button1_Click(object sender, EventArgs e)
{

OleDbConnection conn = new OleDbConnection("provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"/kaohe.mdb");
conn.Open();

for (int i = 1; i < 51;i ++)
{

for (int j = 1; j < 7; j++)
{
OleDbCommand cmd = new OleDbCommand("Select group by 被评分者编号, 被评者,评分者类别,sum(得分) from kezhuren where 被评分者编号="+ i +"and 评分者类别 = "+j +" ", conn);
OleDbDataAdapter oda = new OleDbDataAdapter();
oda.SelectCommand = cmd;
DataSet ds = new DataSet();
oda.Fill(ds, "cs");

var name = ds.Tables[0].Rows [0][1];

double defen = Convert.ToInt32( ds.Tables[0].Rows[0][3]);
double a, b, f, d;

switch (j)
{
case 1: a = defen * 0.5; break;
case 3: b = defen * 0.2; break;

case 4: d = defen * 0.2; break;
case 5: f = defen * 0.1; break;

}
double zongfen;
zongfen = a + b + d + f;
textBox2.Text =zongfen .ToString ();

}
}
展开
 我来答
琴秀曼Bp
2011-09-25 · TA获得超过690个赞
知道小有建树答主
回答量:615
采纳率:0%
帮助的人:667万
展开全部
因为局部变量a b d f的值你没有初始化,在下面的swith中只有其中一个会被赋值,剩下的值就不能确定。
你把double a, b, f, d;改成double a=0, b=0, f=0, d=0;就好了。
licj12
2011-09-25 · TA获得超过102个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:93.7万
展开全部
double a, b, f, d;
这四个变量在此处只是定义,没有赋值,在switch (j)中不一定会被复制,但在 zongfen = a + b + d + f; 中使用了这四个变量进行求和,执行到这里时,这四个变量可能没有值,也就无法求和了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zyl102600
2011-09-25 · TA获得超过678个赞
知道小有建树答主
回答量:702
采纳率:100%
帮助的人:718万
展开全部
C#不支持默认赋值,要使用首先给它赋值.
改成
double a=0.0;
double b = 0.0;
double f = 0.0;
double d = 0.0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
etuchang
2011-09-25 · 超过43用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:139万
展开全部
double a, b, f, d;
下面加
a=0d;
b=0d;
...
d=0d;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式