假設你要引用one_thing
和two_thing
的if
語句之後,你需要的if
語句之前聲明它們,所以他們仍然在範圍內:
double one_thing;
double two_thing;
if (one_spinner.getSelectedItem().toString().equals("one")) {
one_thing = Double.parseDouble(one.getText().toString());
two_thing = one_thing * 5;
} else {
two_thing = Double.parseDouble(one.getText().toString());
one_thing = two_thing/5;
}
請注意,這可以消除冗餘代碼的條款被簡化:
double parsedValue = Double.parseDouble(one.getText().toString());
double one_thing;
double two_thing;
if (one_spinner.getSelectedItem().toString().equals("one")) {
one_thing = parsedValue;
two_thing = one_thing * 5;
} else {
two_thing = parsedValue;
one_thing = two_thing/5;
}
或者,考慮到兩者之間的關係始終是5倍:
double one_thing = Double.parseDouble(one.getText().toString());
if (one_spinner.getSelectedItem().toString().equals("one")) {
one_thing = one_thing/5;
}
double two_thing = one_thing * 5;
注意,通常這些名稱將順便說一句,請問oneThing
和twoThing
。
這似乎是正確的。那麼問題是什麼? – Tudor 2011-12-14 17:10:43
@Tudor:推測變量的範圍僅限於if-else塊內部。 – 2011-12-14 17:11:47
我認爲他們擔心one_spinner只能是「one」或「two」,而「else」不能完全執行此操作。但我不確定我是否也理解這個模糊的問題。 – 2011-12-14 17:12:42