java 核心技术 第三章栗子 数组运用
CompoundInterest 代码:
意思就是: 第一行给出 初始钱 balance[0][j] 赋值一个初始值
给出率率:interestRate[i] ;
再用两重循环计算下一年的钱 odbalabce = balabce[i-1][j] ; interest = Oldbalabce *interestRate[j] balance[i][j] = Oldbalance +interest;
最要的是下面for 循环输出的情况 for(double [] row :balance)
for(double b: row)
System.out.printf("%1.2f",b) ; //输出方式
代码:
public class CompoundInterest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//力求做到今日事今日毕,男人一言快马一鞭
final double STARTRATE = 10;
final int NRATES = 6;
final int NYEARS = 10;
double[] interestRate = new double[NRATES]; //新建一个数组
for(int j = 0; j <interestRate.length; j++)
interestRate[j] = (STARTRATE + j) / 100.0;
//下面新建一个二维数组
double[][] balance = new double[NYEARS][NRATES];
//初始化balance
for(int j = 0 ; j <balance[0].length; j++)
{
//先赋值每年赚多少钱
balance[0][j] = 10000;
}
for(int i = 1 ; i < balance.length; i++ )
{
for(int j = 0 ; j < balance[i].length; j++)
{
double oldBalance = balance[i-1][j];
double interet = oldBalance*interestRate[j];
balance[i][j] = interet + oldBalance;
}
}
for(int k = 0 ; k <interestRate.length; k++)
{
System.out.printf("%9.0f%%", 100*interestRate[k]);
}
System.out.println();
for(double[] row : balance)
{
for(double b:row)
System.out.printf("%10.2f", b);
System.out.println();
}
}
}