我可以在递归函数中进行哪些更改以使其正常工作?

时间:2019-03-26 22:59:46

标签: javascript

SqlCommand cmd = new SqlCommand("INSERT INTO tbl_Meal" +                                 
    " ExpensesID, MealName, MealPrice, ImageName, Imageblob)" +
    "SELECT ExpensesID, @mname, @mprice, @imname, @img " +
    "FROM tbl_Expenses" +
    "WHERE MealName = '"+textBox1.Text+"'",conn);

cmd.Parameters.AddWithValue("@mname", textBox1.Text);                      
cmd.Parameters.AddWithValue("@mprice", textBox4.Text);
cmd.Parameters.AddWithValue("@imname", textBox1.Text);
cmd.Parameters.Add("@img", SqlDbType.Image, photo.Length).Value = photo;

conn.Open();
cmd.ExecuteNonQuery();

调用自身的函数称为递归函数。在某些方面,递归类似于循环。两者都多次执行相同的代码,并且都需要一个条件(避免无限循环,或者在这种情况下避免无限递归)。例如,以下循环:

2 个答案:

答案 0 :(得分:1)

什么都没有。如果您运行此代码,则它实际上可以正常工作。它只是什么都不输出。如果您想从中看到一些输出,请尝试像这样运行它:

function loo(x) 
{
    if (x >= 10) 
    {
        console.log("finished")
        return;
    }
    console.log("x=" + x);
    loo(x+1);
}
loo(1);

答案 1 :(得分:0)

let trace your code :

    function loo(x) {
        if (x >= 10) {
        return;
        loo(x+1)
       }
    }
    loo(1);

the function never works because if block always return noting so change the some statement of  code like this :

    function loo(x) {
        if (x >= 10) {
        return;
            }
        loo(x+1);
        }
then call :

    loo(1);