我这个代码做错了什么?

时间:2014-04-16 15:35:08

标签: c# .net

private void btnCalculate_Click(object sender, EventArgs e)
{
    //variable declarations
    int num;

    //clear the listbox
    lstPwrs.Items.Clear();

    //add header to listbox
    lstPwrs.Items.Add("N\tN^2\tN^3");

    //each subsequent line is displayed as N is incremented 
    //use a while loop to do this, as you must be able to create 
    //the proper output for any upper limit the user enters

    //initialize loop variable, then loop
    num = Convert.ToInt32( txtInput.Text );
    while ( num <= 5 )
    ++num;
    {
        lstPwrs.Items.Add( Math.Pow( num, 1 ) + "\t" + Math.Pow( num, 2 ) +
                          "\t" + Math.Pow( num, 3 ) );
    }
}

这就是我所做的,只有一行数字显示出来,如果我输入5作为我的数字,那么一切都以每个6的功率为基础完成,如6 ^ 1,6 ^ 2,6 ^ 3 ,当文本框中有5时,会显示答案。希望这是有道理的。

2 个答案:

答案 0 :(得分:7)

您的while语法错误。它正在执行++num,直到num <= 5 然后执行该块。我想你想要:

while ( num <= 5 )
{
    ++num;
    lstPwrs.Items.Add( Math.Pow( num, 1 ) + "\t" + Math.Pow( num, 2 ) +
                      "\t" + Math.Pow( num, 3 ) );
}

num = 1;
while ( num <= 5 )
{
    lstPwrs.Items.Add( Math.Pow( num, 1 ) + "\t" + Math.Pow( num, 2 ) +
                      "\t" + Math.Pow( num, 3 ) );
    ++num;
}

如果你想从1循环到5。

答案 1 :(得分:1)

将循环后的代码放在循环中。

while ( num <= 5 ){
    ++num;

        lstPwrs.Items.Add( Math.Pow( num, 1 ) + "\t" + Math.Pow( num, 2 ) +
                          "\t" + Math.Pow( num, 3 ) );
}