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

第三周学习笔记

导语:

  • 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指挥官阁下

感谢打赏!衷心祝愿你能学有所!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值