浙大翁凯老师Java课堂学习记录(第三周)

(3) 2024-10-07 09:01:03

第三周学习笔记

导语:

  • if语句可以判断条件是否满足,满足时才做相应的动作,而循环语句可以在满足条件时,不断地重复执行一些动作。
  • 重复执行的语句(循环语句)可以多次执行其他语句,它检查一个逻辑条件是否满足,只在满足的时候执行它的循环体。
  • while语句是一个循环语句,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。
  • do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。

3.1  循环

接着第二周自动售票机的案例,现在为了实现售票机持续工作,就将实现售票功能的代码段放入循环结构,这样便可以实现自动售票机的机制。

实现循环代码

 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循环结构。

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

THE END

发表回复