我有此代码:
public void main() throws InterruptedException, IOException {
boolean a = true;
if(a == true) {
methodTwo();
} else {
methodOne();
}
}
public void methodOne() throws InterruptedException, IOException {
System.out.println("Using method one!");
}
public void methodTwo() throws InterruptedException, IOException {
System.out.println("Using method two!");
}
由于某种原因,当我运行代码时,即使methodOne()
为真,methodTwo()
仍在a
之后执行。而且,如果a
为假,则methodTwo()
仍在执行。
无论methodTwo()
是对还是假,methodOne()
中的print语句都在a
中的print语句之前执行
我需要做的是,如果a
为true,则仅执行methodTwo()
,反之亦然。我该怎么办?
答案 0 :(得分:1)
这是不可能的,我已经测试了您的代码。 https://repl.it/repls/DangerousComfortableCoding
下一次,请发布整个代码,如Thomas所编辑的。我怀疑问题是您的代码不引人注目:;
之后缺少a = true
,而且我猜您正在起诉控制台编译器,就像大多数新手使用的那样。
因此您的编译命令失败,并且您没有注意到编译错误并执行了先前版本的编译代码。
答案 1 :(得分:0)
正如另一个答案所述,这是不可能的。
Dict
控制台:使用方法二!
class Main{
public static void main(String[] args){
boolean a = true;
if(a == true) {
methodTwo();
} else {
methodOne();
}
}
public static void methodOne(){
System.out.println("Using method one!");
}
public static void methodTwo(){
System.out.println("Using method two!");
}
}
控制台:使用方法一!