很难判断此处所问的问题。此问题模棱两可、模糊不清、不完整、过于宽泛或过于修辞,无法以其当前形式合理地回答。若要获得澄清此问题以便重新打开的帮助,请单击visit the help center。
九年前就关门了。
社区在4天前审查了是否重新讨论此问题,并将其关闭:
原始关闭原因未解决
我是一个Java程序员,刚接触C++。在下面的代码中,我知道if(condition1)is true variable1被返回。但是是否有任何机制可以在第一个if条件计算为true之后处理第二个if?我问这个问题是因为我看到过类似的代码,并且是在调试时发现的。
if( condition1 )
{
return variable1;
}
//do some processing here
if( condition2 )
{
return variable2;
}
6条答案
按热度按时间z4iuyo4d1#
虽然有办法在return语句之后运行代码,但无法在执行return语句之后更改返回值。
下面是如何让一些代码在return语句之后运行:
上面的程序prints
l7mqbcuq2#
不可以。一旦遇到
return
,函数中的任何其他内容都不会被处理。guykilcj3#
您的函数必须执行1条且正好1条
return
语句。因此,要么执行
return variable1
,要么执行if(condition2)
,但决不能两者都执行。ar5n3qh54#
不,代码在
return
语句到达后不会执行。但是,如果condition1
为false,则return
语句不会到达,因此执行会正常进行。这也正是Java的行为方式。早期的
return
声明有争议,但我个人觉得它们很有帮助;试图避免它们可能会导致多余的麻烦,例如对您没有任何实际帮助的临时变量或大的if
-由于其作用域,这些块大多数只是读起来令人困惑。pbossiut5#
据我所知(或者至少我的老师告诉我),在执行结束之前 * 使用
return
不是一个好主意,递归函数除外。我建议你使用一个变量来存储你想作为函数结果返回的值,并在函数结束时返回它:
h79rfbju6#
它只有在被调用时才执行。此时,您将离开该函数/方法。在您的示例中,如果condition 1为false,它将运行额外的处理,然后继续测试条件2。
现在,在你的例子中,你的代码可能不会被编译,(我知道在Java中不会),这是因为有可能两个条件都不满足,在这种情况下,我们会迷路,所以,你可能应该在if语句之外有一些return。
简而言之,在调用return之后不会执行代码。