Java 如何跳过if语句转到下一个if语句
是否可以跳过一个if语句并在该if语句中执行另一个if语句Java 如何跳过if语句转到下一个if语句,java,Java,是否可以跳过一个if语句并在该if语句中执行另一个if语句 if(...){ A code. }else if(...){ B. Call to C. }else if(...){ C code. }else(...){ D code. } 例如,如果我在包含A的if语句中,并且条件发生变化,从而执行B,那么我将如何调用C中的代码,而在B else if语句中调用 EDIT=忘了说除了一个if语句之外,我的if语句还返回了一个名为Dice[]的自定义对象数组。我
if(...){
A code.
}else if(...){
B. Call to C.
}else if(...){
C code.
}else(...){
D code.
}
例如,如果我在包含A的if语句中,并且条件发生变化,从而执行B,那么我将如何调用C中的代码,而在B else if语句中调用
EDIT=忘了说除了一个if语句之外,我的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将不得不运行,不是吗
EDIT#2=刚刚为未返回值的方法找到了一个变通方法。谢谢大家的意见。使我的代码更加简洁易懂 您可以将
A代码
、B代码
、C代码
和D代码
放在各自的方法中,然后在B
if语句中调用C代码
比如说
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块
if (...) {
doA();
} else if (...) {
doB();
doC();
} else if (...) {
doC();
} else {
doD();
}
为c代码创建一个方法
if(...){
A code.
}else if(...){
B
cCode();
}else if(...){
cCode();
}else(...){
D code.
}
private void cCode() {
...
}
显然,其他两个答案更为清晰,但这只是另一条出路
int condition = 2;
while(true) {
if(condition == 1){
System.out.println(1);
}else if (condition == 2){
System.out.println(2);
condition = 3;
continue;
}else if (condition == 3){
System.out.println(3);
}
break; //if continue gets called it will skip this
}
您可能希望先格式化代码…而不是跳过将
C code
作为一个模块,这样您就可以在B
语句或C
语句中调用它,除非您将它们全部更改为单个if
语句,以便通过“调用C”检查所有类似情况你的意思是制作一个名为doC()
的方法,并在第二个和第三个中调用它吗?如果,请使用方法来完成任务。感谢您的输入。到目前为止,我已经做了一切,我只是得到一个返回错误。我可能忘了说我的if语句除了一个之外都返回了一些东西。现在我已经完成了您的步骤,我得到了一个返回错误,但不确定返回什么。我已经将我以前的if语句放在它的单个方法中,并将if-else块放在一个方法中。我将编辑我的帖子,这样你就可以看到我的意思了。在大多数doX()
方法之后,你缺少了一些分号。你可以更改此方法并删除其他的s,以避免出现while循环并继续
。