c#的变量问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 06:05:25
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace chajian
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnComputer_Click(object sender, EventArgs e)
{
double r, dblHalf, dblVol;
if(double.TryParse(txtR.Text,out r))
{
if (chkHalf.Checked) dblHalf = 0.5;
else dblHalf = 1;
if (rdoBall.Checked) dblVol = dblHalf * CalBall(r);
else if (rdoCub.Checked) dblVol = dblHalf * CalCube(r);
else if (rdoCylin.Checked) dblVol = dblHalf * CalCylinder(r);
}
else
{

double r, dblHalf, dblVol;
改成:
double r, dblHalf, dblVol = 0.0;
否则,根据:
if (rdoBall.Checked) dblVol = dblHalf * CalBall(r);
else if (rdoCub.Checked) dblVol = dblHalf * CalCube(r);
else if (rdoCylin.Checked) dblVol = dblHalf * CalCylinder(r);
当它们三个都没有Check的时候,dblVol 是没有被赋值的。

dblVol在声明的时候并没有赋初始值.而是在这里赋值的:
if (rdoBall.Checked) dblVol = dblHalf * CalBall(r);
else if (rdoCub.Checked) dblVol = dblHalf * CalCube(r);
else if (rdoCylin.Checked) dblVol = dblHalf * CalCylinder(r);
}
else
{
MessageBox.Show("请选择立方体形状");
}

也就是说在else的时候dblVol是没有被赋值的.
所以在下面的代码中使用它的时候就会报错:使用了未赋值的局部变量dblVol

------------------

你在声明的时候都给赋上初值吧:
double r=1, dblHalf=1, dblVol=1;

dblVol 在if语句里面赋的值

程序执行时 可能if语句的条件不满足 那么dblVol就还是空值
这样便出出现错误

你可以在定义变量时就给他附一个初始值

如 double dblVol=0;

dblVol在if语句里面赋的值你在if外面使用dblVol的值。如果程序直接走了else那么dblVol就没有