JAVA__while--do while小练习
程序员文章站
2022-03-16 10:38:20
...
前景
今天练习书上的小例子,自己看一遍然后再分析一下流程,代码简单是简单,但是我要学的是分析问题的思路,这个很重要
while
package test;
import java.util.*;
/**
* while 小练习
* 计算需要多久能储存一定量的退休金
* @author XiaoXin
* 分析:
* 1、退休金每年存起来都有利润,所以每年的存储量=存入量+(原来的量+存入量)×利率
* 2、需要的参数--
* 每年存储的量(假设为固定值,并且在年初存入)store
* 利率 interest
* 最终的年份 year
* 一共要存多少 total
*/
public class Retirement
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("输入你的目标:");
double total = in.nextDouble();
System.out.println("输入每年的存储量");
double store = in.nextDouble();
System.out.println("输入每年的银行利率");
double interest = in.nextDouble();
int year = 0;
// 计数器,记载当前的存额
double current = 0;
while (current < total)
{
// 年初存入
current += store;
// 年末增长的
current += current * interest / 100;
year++;
}
System.out.printf("到%d年存满", year);
}
}
输入你的目标:
1000
输入每年的存储量
300
输入每年的银行利率
5
到4年存满
小坑:java的字符串格式化延续了C的是printf- - 一开始没有注意到,用的println,报错了。println只打印字符串。如果不练习,我说不定不会发现这个错误
do-while
package test;
import java.util.*;
public class Retirement2 {
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("输入每年的存储量");
double store = in.nextDouble();
System.out.println("输入每年的银行利率");
double interest = in.nextDouble();
int year = 0;
// 计数器,记载当前的存额
double current = 0;
String query;
do
{
// 年初存入
current += store;
// 年末增长的
current += current * interest / 100;
year++;
System.out.printf("您已经存了%d 年,到了年尾余额将达到%f元", year, current);
System.out.println("您是否想要退休,退休Y,否则N");
query = in.next();
}
while (query.equals("N"));
}
}
小坑:
关于变量声明
一开始我把query 在do 代码块里面进行声明和赋值的,然后在while里面用的时候,显示未声明,就在全局中先声明了下,然后在里面赋值才行。看来代码快的变量这层关系还是重要的啊,另外不能在代码块嵌套之间重复声明某一个变量,并不是内层覆盖外层定义,这一点要注意。
总结一下:
其实就是一句话
外部声明内部能用,外面能接着继续用;
内部声明内部能用,外部用不了。
上一篇: VB中do循环的四种格式
下一篇: JavaScript中while循环练习