我正在为我的一个班级开设一个项目。在其中,我们需要创建一个货币转换器,使用一系列转换率将一种货币转换为另一种货币。但是,我无法让我的程序从阵列中获得转换率。
private static final double[][] rates =
{ {1.0, 0.624514066, 0.588714763, 0.810307 },
{1.601244959, 1.0, 0.942676548, 1.2975},
{1.698615463, 1.060809248, 1.0, 1.3764},
{1.234100162, 0.772200772, 0.726532984, 1.0} };
public double getFxRate(final String inCurr, final String outCurr){
int Currency1;
int Currency2;
double rate;
if(inCurr == "CAD"){
Currency1 = 0;
}
if(inCurr == "EUR"){
Currency1 = 1;
}
if(inCurr == "GBP"){
Currency1 = 2;
}
if(inCurr == "USD"){
Currency1 = 3;
}
if(outCurr == "CAD"){
Currency2 = 0;
}
if(outCurr == "EUR"){
Currency2 = 1;
}
if(outCurr == "GBP"){
Currency2 = 2;
}
if(outCurr == "USD"){
Currency2 = 3;
}
rate = rates[Currency1][Currency2];
return rate;
}
}
您可以看到数组和我从数组中获取数字的方法。我收到的错误是Currency1和Currency2可能尚未初始化,即使if语句清楚地初始化它们。谁能看到我做错了什么?
另外,我确信有更好的方法来设置Currency1和2的值而不是8个不同的if语句,但我只是希望程序在我担心效率之前工作。如果你也想帮助我,我会很感激,但这不是一个优先事项。
谢谢!
答案 0 :(得分:1)
更改这些行
int Currency1;
int Currency2;
到
int Currency1 = 0;
int Currency2 = 0;
更改类似的比较
outCurr == "USD"
更像是
"USD".equals(outCurr)