if语句中的返回在以下代码中做了什么?
public void startElement(String namespaceURI, String localName,String qName,
Attributes atts) throws SAXException
{
depth++;
if (localName.equals("channel"))
{
currentstate = 0;
return;
}
if (localName.equals("image"))
{
// record our feed data - you temporarily stored it in the item :)
_feed.setTitle(_item.getTitle());
_feed.setPubDate(_item.getPubDate());
}
if (localName.equals("item"))
{
// create a new item
_item = new RSSItem();
return;
}
if (localName.equals("title"))
{
currentstate = RSS_TITLE;
return;
}
if (localName.equals("description"))
{
currentstate = RSS_DESCRIPTION;
return;
}
if (localName.equals("link"))
{
currentstate = RSS_LINK;
return;
}
if (localName.equals("category"))
{
currentstate = RSS_CATEGORY;
return;
}
if (localName.equals("pubDate"))
{
currentstate = RSS_PUBDATE;
return;
}
// if you don't explicitly handle the element, make sure you don't wind
// up erroneously storing a newline or other bogus data into one of our
// existing elements
currentstate = 0;
}
它是否将我们从if语句中删除并继续执行下一个语句,或者它将我们带出startElement方法?
答案 0 :(得分:16)
上述代码中的返回将使您退出方法。
答案 1 :(得分:10)
它完成了方法,因此下面的代码不会被执行。
答案 2 :(得分:9)
是否需要我们退出if语句并继续下一步 声明或它将我们带出方法startElement?
它会让你走出这个方法.. return语句终止函数的执行
答案 3 :(得分:3)
return总是从调用方法中取出控制权。
答案 4 :(得分:3)
是。这里的返回将控制方法。
答案 5 :(得分:2)
它会返回你在方法头中声明的内容(这里是void = nothing =它只会结束方法)
答案 6 :(得分:0)
此处的返回可能用于“改进”方法的性能,以便在执行所需方案后不执行其他比较。
但是,在方法中使用多个返回点并不是一个好习惯。
正如我的评论中所述,我会尝试一种不同的方法来实现相关代码的流程。
答案 7 :(得分:0)
返回将结束方法的流程,并且在功能上与使用较短的else if
链类似
/* if (localName.equals("channel")) {
currentstate = 0; // This can be removed because it's the default below.
} else */ if (localName.equals("image")) {
// record our feed data - you temporarily stored it in the item :)
_feed.setTitle(_item.getTitle());
_feed.setPubDate(_item.getPubDate());
} else if (localName.equals("item")) {
// create a new item
_item = new RSSItem();
} else if (localName.equals("title")) {
currentstate = RSS_TITLE;
} else if (localName.equals("description")) {
currentstate = RSS_DESCRIPTION;
} else if (localName.equals("link")) {
currentstate = RSS_LINK;
} else if (localName.equals("category")) {
currentstate = RSS_CATEGORY;
} else if (localName.equals("pubDate")) {
currentstate = RSS_PUBDATE;
} else {
currentstate = 0;
}