接着第二周自动售票机的案例,现在为了实现售票机持续工作,就将实现售票功能的代码段放入循环结构,这样便可以实现自动售票机的机制。
实现循环代码:
import java.util.Scanner; public class Hello { public static void main(String[] args) { // 初始化 Scanner in = new Scanner(System.in); int balance =0;//最开始的余额为0 // 读入投币金额 while(true) { System.out.print("请投币:"); 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("****************"); // 计算并打印找零 System.out.println("找零:"+(balance-10)); balance=0;//清零 } } } }
代码解释:引入的变量balance是为了第一次投入钱不够,第二次进行复投用来相加的,在if判断语句中用balance代替amount,从而避免首次投入钱币不够再投钱币程序不运行的情况出现。同时在一次循环功能执行结束后,也就是找零功能完成后,对balance余额进行清零工作,这样可以避免进入下一次循环的影响。
程序要读入一个正整数,然后输出这个整数的位数。如:
输入:352
输出:3
代码实现:
import java.util.Scanner; public class Main{ public static void main(String[] args) { // 初始化 Scanner in = new Scanner(System.in); int number=in.nextInt();//读进来一个数 int count=0;//计数器 while(number>0) { number=number/10; count=count+1; } System.out.println("位数为:"+count); } }
运行结果:
352
位数为:3
解释代码:
在解释代码之前,先说一说这道题的解法。
计算机如何来计数呢?有一个很大的数,那么我们从右往左对它进行取余计算,如352,首先令352/
while(number>0),如果number>0条件成立,那么就进行{}内的代码,本来应该使用if语句的,但因为我们想让这个{}内的计算一直做下去,直到number<=0为止,因此我们应当使用while循环结构。
1.定义:将“while”翻译成“当”,一个while循环即:当条件满足,重复执行循环体内的语句。
2.区分:if条件语句进行一次,使用while条件满足情况下可以一直进行,直至不再满足条件。
举例:
if(x>0) { x=x/10; n=n+1; }
while(x>0) { x=x/10; n=n+1; }
说明:在大括号{}里面的内容叫做循环体;在圆括号()里的叫做条件。
注意:
①在循环体内要有改变条件的机会,否则while将会变成死循环一直做下去。
②执行while循环前,首先判断条件是否满足,所以存在循环一次也没被执行的情况。
③条件成立是循环继续的前提。
人脑模拟计算机(使用“变量表格”,纸上一步一步写下代码运行结果)
调试(在程序适当的地方插入输出来显示变量的内容)
Debug(加断点)
调试举例(数数字的代码)
import java.util.Scanner; public class Main{ public static void main(String[] args) { // 初始化 Scanner in = new Scanner(System.in); int number=in.nextInt();//读进来一个数 int count=0;//计数器 while(number>0) { number=number/10; count=count+1; System.out.println("number="+number+";count="+count); } System.out.println("位数为:"+count); }
运行结果:
352
number=35;count=1
number=3;count=2
number=0;count=3
位数为:3
另外,当我们的程序完成后,通常需要“验证”,测试程序常使用边界数据,如有效范围两端的数据、特殊的倍数等等。&#x