week 3 循环
3.1 自动售票机的循环讨论
继续来讨论之前的自动售票机,此次要解决的问题是:如何能够不断地投币-出票?
首先我们希望这个程序不应该是“一次性”结束的(映射现实就是能够反复地买票),因此我们可以设置一个判断语句,当满足条件时,将我们前面的源代码完整地运行一遍;其次我们应有一个变量balance记录每次的零钱,并且balance应该放在合适的位置设置初值为0,当balance大于等于10的时候,我们出票一张并给出找零,balance清零。由以上思路可以得到如下代码:
public static void main(String[] args) {
// 初始化
Scanner in = new Scanner(System.in);
int balance = 0;
// 读入投币金额
while(true)
{
System.out.println("请投币:");
int amount = in.nextInt();
balance = balance + amount;
if(balance >= 10)
{
// 打印车票
System.out.println("********************");
System.out.println("***Java城际铁路专线***");
System.out.println("*****无指定座位票*****");
System.out.println("*****票价:10元*******");
System.out.println("*********************"