有人用 goto 语句么?我是用它代替递归

2017-10-24 16:35:17 +08:00
 me15000

//递归
void repeat(c) {

	
		//需要重复的代码
	

		if (xx) {
			 repeat(xx);
		}

}

//goto 代替递归
void repeat(c) {

	loop:
		//需要重复的代码
	

		if (xx) {
			goto loop;
		}

}


        //一个采集程序
        public void Run(string listurl)
        {
            using (var wc = new WebClient())
            {
                loop:

                string html = Encoding.GetEncoding("utf-8").GetString(wc.DownloadData(listurl));
                var doc = new HtmlDocument();
                doc.LoadHtml(html);
                var nodes = doc.DocumentNode.SelectNodes("//ul[@id=\"data_list\"]/li/div/a");
                for (int i = 0; i < nodes.Count; i++)
                {
                    var node = nodes[i];
                    string link = "http://www..cn" + node.Attributes["href"].Value;
                    string title = node.SelectSingleNode("span[@class=\"sTit\"]").InnerText;
                    Save(title, link);
                }
                var nextnode = doc.DocumentNode.SelectSingleNode("//div[@class='page mb clearfixs']/em/following-sibling::a");
                if (nextnode != null)
                {
                    listurl = "http://www..cn" + nextnode.Attributes["href"].Value;
                    goto loop;
                }
            }
        }
10890 次点击
所在节点    分享发现
128 条回复
me15000
2017-10-26 10:46:46 +08:00
@msg7086 ╮(╯▽╰)╭ ,行了,我筋疲力尽了,你赢了
introom
2017-10-26 13:14:25 +08:00
@ryd994 你这样就没意思了,断章取义,为喷而喷。大家都有大姨夫的时候,我能理解,不过你的有点强烈哦。
yuriko
2017-10-26 13:16:40 +08:00
用 goto 的时候,有考虑过循环展开的心情么 23333333
SuperMild
2017-10-26 13:31:59 +08:00
看了楼主 append,不懂 C#,但是 while(true)里面出现 if () else break 真的没问题吗?一般可以改成 do{} while()吧
ryd994
2017-10-26 13:35:20 +08:00
@introom 呃……我只是不希望误导新人
xomix
2017-10-26 15:49:25 +08:00
@msg7086 em …………这是孙渣画的,怎么你这图不光裁图还加了自己的水印了,太过分了,你以后一定要换掉这个裁了换水印的图啊!!!
msg7086
2017-10-26 16:08:16 +08:00
@xomix 求原图,我手里只存了这张随便网上搜的……
xomix
2017-10-27 09:04:44 +08:00
@msg7086 你可以去 lofter 上找到流亡的孙渣,账户名 孙渣 ,然后好好申请问他要,我就是有我给你这个也不对啊,别人也没 MIT 授权

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/400286

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX