C++ 嵌套if拖放到父else
也许我只是太傻了,但是像这样的事情怎么可能实现呢?我用的是c++:C++ 嵌套if拖放到父else,c++,C++,也许我只是太傻了,但是像这样的事情怎么可能实现呢?我用的是c++: if (Something) { if (AnotherThingDependentOnSomething) { certain stuff } else { <goto parentelse> } } else { other stuff } 除非某事物为真,否则无法对另一事物进行评估。 在运行测试之前,我需要做其他事情。
if (Something)
{
if (AnotherThingDependentOnSomething)
{
certain stuff
}
else
{
<goto parentelse>
}
}
else
{
other stuff
}
除非某事物为真,否则无法对另一事物进行评估。
在运行测试之前,我需要做其他事情。
所以我的问题是关于去父母的else。去掉else语句怎么样
if (Something)
{
//Do some stuff
if (AnotherThingDependentOnSomething)
{
certain stuff
}
}
else
{
other stuff
}
编辑:
好吧,我想我明白你想做什么了。我的建议是:
void OtherStuff()
{
//Other stuff
}
void CurrentFunction()
{
if(Something)
{
//Do some stuff
if(AnotherThingDependentOnSomething)
{
//certain stuff
}
else
{
OtherStuff();
}
}
else
{
OtherStuff();
}
}
把else语句去掉怎么样
if (Something)
{
//Do some stuff
if (AnotherThingDependentOnSomething)
{
certain stuff
}
}
else
{
other stuff
}
编辑:
好吧,我想我明白你想做什么了。我的建议是:
void OtherStuff()
{
//Other stuff
}
void CurrentFunction()
{
if(Something)
{
//Do some stuff
if(AnotherThingDependentOnSomething)
{
//certain stuff
}
else
{
OtherStuff();
}
}
else
{
OtherStuff();
}
}
在这种情况下,最好编写更简单、更容易理解的代码。如果你试着聪明一点的话,保养会更困难,更麻烦
bool another_thing = false;
bool some_thing = Something(); // Side effects were implied?
if (some_thing) {
// ... code dependent on something, but before another thing
if (AnotherThingDependentOnSomething) {
another_thing = true;
// ...
}
}
if (!some_thing || another_thing) {
// ...
}
在这种情况下,最好编写更简单、更容易理解的代码。如果你试着聪明一点的话,保养会更困难,更麻烦
bool another_thing = false;
bool some_thing = Something(); // Side effects were implied?
if (some_thing) {
// ... code dependent on something, but before another thing
if (AnotherThingDependentOnSomething) {
another_thing = true;
// ...
}
}
if (!some_thing || another_thing) {
// ...
}
如果我正确理解您的需求,那么使用一个小小的成功标志可能会使代码更具可读性:
bool complicated_condition_holds = false;
if (Something)
{
// laborious stuff...
if (SomethingElse)
{
// tedious stuff...
complicated_condition_holds = true;
}
}
if (!complicated_condition_holds)
{
// your original "else" block
}
如果我正确理解您的需求,那么使用一个小小的成功标志可能会使代码更具可读性:
bool complicated_condition_holds = false;
if (Something)
{
// laborious stuff...
if (SomethingElse)
{
// tedious stuff...
complicated_condition_holds = true;
}
}
if (!complicated_condition_holds)
{
// your original "else" block
}
重构出公共部分,然后从两个位置调用它
if (Something)
{
// do some stuff before the nested if
if (AnotherThingDependentOnSomething)
{
certain stuff
}
else doOtherStuff();
}
else
{
doOtherStuff();
}
void doOtherStuff(params...?)
{
other stuff
}
重构出公共部分,然后从两个位置调用它
if (Something)
{
// do some stuff before the nested if
if (AnotherThingDependentOnSomething)
{
certain stuff
}
else doOtherStuff();
}
else
{
doOtherStuff();
}
void doOtherStuff(params...?)
{
other stuff
}
如果另一个thingDependentOnSomething是false,则不会对else语句求值,因为它是true@j3frea:您希望它具体执行什么操作?如果textbox中的文本大于某个长度,并且已达到方法的此点,则可能已粘贴该文本,因此我将生成一个可能选项列表,并查看是否存在任何选项。如果其中任何一个失败,那么一定的长度太短或者没有选择,我需要做点什么else@j3frea:我的意思是你想在你的代码中去哪里?我所做的改变符合你的要求吗?@j3frea:我不同意汤姆的更好。一般来说,如果您有重复的代码,最好将其放在某个函数中。如果另一个thingDependentOnSomething是false,则不会计算else语句,因为它是true@j3frea:您希望它具体执行什么操作?如果textbox中的文本大于某个长度,并且已达到方法的此点,它可能已经被粘贴了,所以我生成了一个可能选项的列表,看看是否有任何选项。如果其中任何一个失败,那么一定的长度太短或者没有选择,我需要做点什么else@j3frea:我的意思是你想在你的代码中去哪里?我所做的改变符合你的要求吗?@j3frea:我不同意汤姆的更好。一般来说,如果你有重复的代码,最好把它放在某个函数中。是的,我想这就是我必须要做的。可惜你的解决方案不是有投票权的…@j3frea:投票权不重要。选择最适合你需要的答案。你将对某件事进行两次评估。如果这不是你想要的,那么从一开始就把它拿出来储存。是的,我想这就是我必须要做的。可惜你的解决方案不是有投票权的…@j3frea:投票权不重要。选择最适合你需要的答案。你将对某件事进行两次评估。如果这不是你想要的,那么从一开始就把它拿出来储存。是的,这就是我所说的——我见过的最干净的。我只是希望能有一些其他的解决办法,比如休息或者类似的事情。虽然我会以不同的方式排列我的旗帜。@j3:Nah。。。条件句不是循环,所以不存在这样的父概念。是的,这就是我所说的——我见过的最干净的。我只是希望能有一些其他的解决办法,比如休息或者类似的事情。虽然我会以不同的方式排列我的旗帜。@j3:Nah。。。条件句不是循环,所以不存在这样的父级概念。