如何从循环中使用局部变量并将它们分配给其他结构的方程式

时间:2015-03-16 12:09:53

标签: c# if-statement for-loop

private void ParametersChanged(object sender, EventArgs e)
{
    if (AreArgumentsValid() && klasaBetonaComboBox.SelectedItem != null)
    {

        var _dMed = Convert.ToDouble(MomentSavijanjaMed.Text);                   
        var  _dh = Convert.ToDouble(VisinaPresjekaH.Text);
        var _db = Convert.ToDouble(SirinaPresjekaB.Text);
        var _dd1 = Convert.ToDouble(UdaljenostArmD1.Text);
        var _dd = _dh - _dd1;
        var _dFck = Convert.ToDouble(fck.Text);
        var _gamaC = 1.50;
        gamaCRezultat.Text = _gamaC.ToString();
        var dFcd =  _dFck /_gamaC;
        FcdRezultat.Text = dFcd.ToString();

        var _dMiSd = _dMed * 1000 / (_dd * _dd * _db * dFcd);

        rezultat.Text = _dMiSd.ToString("F4");
    }

从这里开始我需要在下一个结构中使用变量_dMiSd_dd

private void deformacijaCelikaComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    double epsilonC2;
    double ksiRacunski;
    double zetaRacunska;
    double kARacunski;
    double epsilonC2pretpostavka;
    double miSdCrtica;
    double alphaVRacunski;
    double selectedDeformacija = ((NovaDeformacijaArmature)deformacijaCelikaComboBox.SelectedItem).epsilonCelika;
    double zeta;
    double ksi;
    double xNeutralnaOs;
    double zKrakSila;

    if (selectedDeformacija == 20.0)
    {
        for (epsilonC2pretpostavka = 0.01; epsilonC2pretpostavka <=3.5 ; epsilonC2pretpostavka += 0.01)
        {
            ksiRacunski = epsilonC2pretpostavka / (selectedDeformacija + epsilonC2pretpostavka);

            if (epsilonC2pretpostavka <= 2)
            {
                kARacunski = 8 - epsilonC2pretpostavka / (4 * (6 - epsilonC2pretpostavka));
                alphaVRacunski = (epsilonC2pretpostavka * (6 - epsilonC2pretpostavka)) / 12;
            }
            else if (epsilonC2pretpostavka <= 3.5)
            {
                kARacunski = (epsilonC2pretpostavka * (3 - epsilonC2pretpostavka - 4) + 2) / (2 * epsilonC2pretpostavka * (3 * epsilonC2pretpostavka - 2));
                alphaVRacunski = (3 * epsilonC2pretpostavka - 2) / (3 * epsilonC2pretpostavka);
            }

            zetaRacunska = 1 - (kARacunski * ksiRacunski);
            miSdCrtica = 0.85 * alphaVRacunski * ksiRacunski * zetaRacunska;

            if (Math.Abs(miSdCrtica-_dMiSd)<0.0001)
            {
                epsilonC2pretpostavka = epsilonC2;
                zetaRacunska = zeta;
                ksiRacunski = ksi;
                xNeutralnaOs = ksi * _dd;
                zKrakSila = zeta * _dd;
            }

在这里,我看到了循环。在其中我有if情况,它会给我变量kAracunskialphaVracunski的值。

当我从计算中得到它们时,我想用它们进行计算miSdCrtica

之后我想检查他们的差异是否满足给定的条件。

我收到错误:

  

“当前上下文中不存在变量(_dMiSd_dd)。

错误

  

“使用未分配的变量alphaVRacunski和zetaRacunski

如何将它们连接在一起?

简单示例

private void something(object sender, EventArgs e)
        {
            double a=3;
            double b=6;
            double c;
            double d;

            if (a>5)
            {
                c = a + b;
            }
            d = c * 5;

变量c未分配且无法使用...我该如何使用它? 我知道这是一个非常简单的问题和解决方案可能非常简单,但我在编程方面真的很新,需要一些时间将事情联系在一起。我的appologies

1 个答案:

答案 0 :(得分:0)

尝试在修改其值的区域之外声明它们,并将它们声明为整数或双精度。

    internal int _dMisd;
    internal int _dd;

private void ParametersChanged(object sender, EventArgs e)
{
if (AreArgumentsValid() && klasaBetonaComboBox.SelectedItem != null)
{

    _dMed = Convert.ToDouble(MomentSavijanjaMed.Text);                   
    _dh = Convert.ToDouble(VisinaPresjekaH.Text);
    _db = Convert.ToDouble(SirinaPresjekaB.Text);
    _dd1 = Convert.ToDouble(UdaljenostArmD1.Text);
    _dd = _dh - _dd1;
    _dFck = Convert.ToDouble(fck.Text);
    _gamaC = 1.50;
    gamaCRezultat.Text = _gamaC.ToString();
    dFcd =  _dFck /_gamaC;
    FcdRezultat.Text = dFcd.ToString();

    _dMiSd = _dMed * 1000 / (_dd * _dd * _db * dFcd);

    rezultat.Text = _dMiSd.ToString("F4");
}
}

为什么你要将数字声明为'var'?

编辑:在函数

之外声明c和d
        double c;
        double d;

private void something(object sender, EventArgs e)
    {
        double a=3;
        double b=6;
        if (a>5)
        {
            c = a + b;
        }
        d = c * 5;
   }