为了账号安全,请及时绑定邮箱和手机立即绑定

关于while循环嵌套递归执行顺序问题

关于while循环嵌套递归执行顺序问题

三国纷争 2019-03-01 10:34:56
有这么一段代码: public static String getMenuItem(String sWhere,String rWhere,String str) throws SQLException{ String Get = "mname,menuitem"; ResultSet rs = null; StringBuffer sb = new StringBuffer(); rs = SqlUtilities.getAllResult("rolemenuview", Get, sWhere.concat(rWhere)); if(str.equals("x")){ sb.append(",\"subs\":["); } int i = 0; while(rs.next()&&rs!=null){ if(i==0){ i = 1; }else{ sb.append(","); } sb.append("{\"Title\":\""); sb.append(rs.getString(1)+"\""); sb.append(getMenuItem("where pmenu='"+rs.getString(2)+"'", rWhere, str+"x")); sb.append("}"); } if(str.equals("x")){ sb.append("]"); } if(rs!=null&rs.getStatement()!=null){ rs.getStatement().close(); } return sb.toString(); } 得到的结果{"Title":"考试科目","subs":[{"Title":"Java"},{"Title":"Javascript"}]},{"Title":"考题管理","subs":[{"Title":"Java内存模型解释"},{"Title":"CSS盒模型解释"}]}一个标准的json数据,但。。。我完全看不懂执行顺序,先说下查询顺序,第一次查询只有一条数据,根据第一条数据的查询结果,继续查询得到subs里2条数据。我是在这里看不懂了{"Title":"考试科目","subs":[{"Title":"Java"},{"Title":"Javascript"}]} } 前面的字符拼接都可以理解,唯独就上面这句最后一个大括号,不知道从哪儿来的,麻烦高手看下
查看完整描述

2 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

其实后来debug就好了。。。太关注代码本身。。。要警戒啊~~~

查看完整回答
反对 回复 2019-03-01
?
大话西游666

TA贡献1817条经验 获得超14个赞

递归算法写的有问题,上下文信息太少,不知道怎么回答。

下面的不是一个有效的json字符串,你这个是二段json字符串。

{
    "Title": "考试科目",
    "subs": [
        {
            "Title": "Java"
        },
        {
            "Title": "Javascript"
        }
    ]
},
{
    "Title": "考题管理",
    "subs": [
        {
            "Title": "Java内存模型解释"
        },
        {
            "Title": "CSS盒模型解释"
        }
    ]
}

有效地应该是:

[
    {
    "Title": "考试科目",
    "subs": [
        {
            "Title": "Java"
        },
        {
            "Title": "Javascript"
        }
    ]
},
{
    "Title": "考题管理",
    "subs": [
        {
            "Title": "Java内存模型解释"
        },
        {
            "Title": "CSS盒模型解释"
        }
    ]
}
]
查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 899 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号