因为我拼命寻找3小时的解决方案,但没有找到任何东西,我会在这里试一试。
public static void Assemble(boolean isAnnuityLoan, double K, double P, int N) {
double loan = K;
int year = 1;
Output.PrintHeader();
if (isAnnuityLoan) {
double *rpy* = Calculation.AnnRatePerYear(K, P, N);
} else {
double *T* = Calculation.AmortRate(N, K);
}
for (int x = 0; x < N; x++) {
double I = Calculation.Interest(loan, P);
if (isAnnuityLoan) {
double T = Calculation.AnnAmortRate(**rpy**, loan, P);
} else {
double rpy = Calculation.RatePerYear(loan, P, **T**);
}
Output.PrintTableLine(year, loan, I, **T**, **rpy**);
loan = loan - **T**;
year++;
System.out.println("\n");
}
这是代码。哦酷看起来像格式在代码段中不起作用。无论如何,问题是,编译器将斜体变量( K 和 rpy )标记为未使用,并将粗体(双星)标记为未找到。现在这对我没有任何意义,因为我们可以追踪两条路径。
isAnnuityLoan是假的。 itll计算T,然后输入for循环,因为isAnnuityLoan仍为false,else语句将触发并计算rpy。
反之亦然,首先计算rpy,循环中计算T,因此两个变量都应该可用。
Buuuut他们不是。我不明白为什么。现在问题出在哪里了?
你的帮助很高,并且可以帮助我在睡梦中不要喋喋不休。
答案 0 :(得分:0)
示例:
//define var
int x;
if(test){
//initialize it here
x = 1;
} else {
//or here
x = 2;
}
//use it here
System.out.println(x);