是否可以跳过if语句并在if语句中执行另一个if语句?
if(...){ A code. }else if(...){ B. Call to C. }else if(...){ C code. }else(...){ D code. }
例如,如果我在包含A的if语句中,并且条件发生变化以便执行B,那么我将如何在B else if语句中调用C WHILST中的代码.
编辑=忘了说我的if语句除了一个返回一个名为Dice []的自定义对象数组.我已经实现了以下解决方案,现在收到返回语句错误.
public Die[] ifA(){ A } public void ifB(){ ifC(); ifD(); } public Die[] ifC(){ C } public Die[] ifD(){ D } public Die[] roll(){ if(...){ return ifA(); }else if(...){ifC();ifD(); }else if(...){return ifC(); }else(...){return ifD(); } }
我刚刚在roll()方法结束时收到返回错误.当然我不应该因为我使用了else {}块,因此如果没有执行if/else if语句,则必须运行else,不是吗?
编辑#2 =刚刚找到了没有返回值的方法的解决方法.谢谢你们的意见.让我的代码更整洁,更容易理解!
你可以把你的A Code
,B Code
,C Code
,并D Code
在自己的方法,然后调用C Code
而在B
if语句.
例如
public void doA() { //Do what would happen in A } public void doB() { //Do what would happen in B } public void doC() { //Do what would happen in C } public void doD() { //Do what would happen in D }
以及if-else-block
if (...) { doA(); } else if (...) { doB(); doC(); } else if (...) { doC(); } else { doD(); }