Java基础-浙大翁恺老师-第三章笔记

while 循环

初始程序-数数字 如下:

	Scanner in = new Scanner(System.in);
			System.out.print("input:");
			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);
  • 循环的意思:重复做直到不满足条件
    当条件满足的时候,(判断条件),不断重复语句
    条件成立是循环继续的条件

  • 如何判断循环的正确
    1)列出里面的变量,想一想每次循环变量发生的变化
    注意(条件)里面的符号,大于还是大于等于
    2)可以调试一下(stepover)
    3)可以用一些特殊的数值进行判断
    结果发现问题:0是0位数

do-whlie 循环

如何解决问题

	Scanner in = new Scanner(System.in);
			System.out.print("input:");
			int number = in.nextInt();
			int count = 0;
			
			do
			{
				number=number /10;
				count=count+1;
	//			System.out.println("number="+number+";count="+count);
			}while(number>0);
			System.out.println(count);
  • 先进入循环,后判断条件
  • 区别就在于什么时候判断
  • do-whlie 循环的whlie后面需要加分号

计数循环

	Scanner in = new Scanner(System.in);
	int count = 100;
	while(count>0)
	{
		System.out.println(count);
		count =count-1;
		
	}
	System.out.println(count);
	System.out.println("boom!");
  • 以一个比较快的方式看跑了多少轮:(验证程序正确性)
    小技巧可以选择一个小一点的数值去验证

算平均数

让用户输入一系列的正整数,最后输入-1表示输入结束
tip: 变量-算法-流程图-程序

		Scanner in =new Scanner(System.in);
		int number;
		number = in.nextInt();
		int count=0;
		int sum=0;
		while (number!=-1)
		{
			sum =sum+number;
			count=count+1;
			number= in.nextInt();
		}
		if (count>0)
		{
	System.out.println("average="+(double)sum/count);
		}
  • 不管是do-whlie循环也好,还是while循环也好,都有些复杂

猜数游戏

让计算机想一个数,然后用户来猜(100以内的正整数),告诉用户
大小,猜中多少次
tip:循环的条件是循环继续的条件,而不是“什么时候结束” 结束的条件

	Scanner in = new Scanner(System.in);
		int number = (int)(Math.random()*100+1);// [0,1)-->[0,100)
		int a ;
		int count =0;
		do{
			a =in.nextInt();
			count=count+1;
			if (a>number)
			{
				System.out.println("偏大");
			}
			else if(a<number)
			{
				System.out.println("偏小");
			}
			
		}while(a!=number);
		
		System.out.println("恭喜你猜对了,你猜了"+count+"次");
  • 注意:可以先写出想要做的循环里面的算法,然后确定是先后判断,再去选择使用while还是dowhile循环

正整数分解

例子:352
352%10——>个位(取余):2
352/10——>35
35%10——>5
35/10——>3
3%10——>3
3/10——>0
得到0 就不用再做下去了 ,并且可以逆序输出

	Scanner in =new Scanner(System.in);
		int number;
		number = in.nextInt();
		int result=0;
		do{
			int digit = number%10;
			result = result*10+digit;
			System.out.print(digit);
			number=number/10;	
		}while (number>0);
		System.out.println();
		System.out.println(result);
  • 如果用while来写的话会有微妙的差别,但是0的时候会不进入循环,直接输出0
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值