我有这段代码控制两个线程。
synchronized public void run() {
switch(ThreadChoice){
case 1:
dataBase();
break;
case 2:
ViewTotal.choice=1;new ViewTotal().displayDatabase();
break;
}
}
当我使用SWITCH语句时,它工作正常,但如果我使用if,if-else或if-else-if,它无法正常工作。这是if语句的代码。
synchronized public void run() {
if(ThreadChoice==1)dataBase();
else if(ThreadChoice==2)ViewTotal.choice=1;new ViewTotal().displayDatabase();
}
在使用if情况时,它会在两个条件中执行代码,但在使用开关时,它只执行指定的大小写。任何人都可以详细说明。我很困惑。提前致谢
这个:
if(ThreadChoice==1)dataBase();
else if(ThreadChoice==2)ViewTotal.choice=1;new ViewTotal().displayDatabase();
是相同的:
if(ThreadChoice==1) {
dataBase();
} else if(ThreadChoice==2) {
ViewTotal.choice=1;
}
new ViewTotal().displayDatabase();
如果你想只为new ViewTotal().displayDatabase();
执行ThreadChoice==2
,你需要使用大括号,并把它放在适当的大括号内:
if(ThreadChoice==1)dataBase();
else if(ThreadChoice==2) { ViewTotal.choice=1;new ViewTotal().displayDatabase(); }
但是总是使用大括号并且每行放一个语句是一个相当不错的主意,所以你的意图很明确。