Java入门循环练习(for,while,do....while)

在我们Java中有三种比较常用的循环结构

它们是for循环,while循环,do...while循环。

总结它们的区别:

             ①语法:

             ②执行顺序:

                              while 循环:先判断,再执行

                              do-while循环:先执行,再判断

                              for循环:先判断,再执行

             ③适用情况:

                              循环次数确定的情况,通常选用for循环

                              循环次数不确定的情况,通常选用while或do-while循环

 

例1:   猴子吃桃子问题:猴子第一天摘下若干套子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个,以后每天都吃前一天剩下的一半多一个。到第10天的时候再想吃桃子时,只剩下一个套子。求第一天摘了多少个套子。

分析:在这个题目中我们要抓住关键逻辑 我们可以从最后一天的那个一个桃子入手

          前一天的桃子的数目时后一天桃子的数目+1 再乘2 也就是第10天是1个 第9天则是:(1+1)*2个

代码如下:

    public static void main(String[] args) {
        int a =1 ;
        int day = 10;
        while(day>1){
            a=(a+1)*2;
            day--;
        }
        System.out.println("吃了"+a+"个");
    }

   结果为:1534

例2:有1020个西瓜,第一天卖掉总数的一半后又多卖掉两个,以后每天卖剩下的一半多两个,问几天可以卖完。

分析:本题和第一题有些许类似,不过细看也略有不同,但思想方法是差不多的。

             注:我们需要一个变量来标记天数。

    public static void main(String[] args) {
        int num = 1020;
        int day=0;
        do{
            num=num-num/2-2;
            day++;
        }while (num>0);
        System.out.println(day);
    }

结果是 8 

 

例3:兔生兔问题,我们规定一对兔子从出生后第三个月开始可以生一队兔子。假如一年内没有发生死亡,设一年后(12个月)能繁殖为多少对?

分析:有过编程经验或者有学习过C等语言的老铁,看到这个题目肯定会想到斐波那契数列。

在此题目中确实是有类似斐波那契数列的逻辑关系,这里作者给入门的童鞋总结出兔子规律的数列:1,1,2,3,5,8,13,21

我们可以看到从第三项开始的值就是前两项的值。要完成这个逻辑操作我们可以通过一个中间值去完成。

    public static void main(String[] args) {
        int a=1;
        int b=1;
        int temp;
        for(int i=2;i<12;i++){
            temp = b;
            b=a+b;
            a=temp;
        }
        System.out.println(b);

    }

结果为:144

 

例4:计算1+2-3+4-5+6-7+......+100的值

分析:此题可以清晰的分为奇数部分和偶数部分

奇数从3 开始就变为负值

而偶数就一直是正值      总结出我们可以从2开始循环 然后初始值定为1

    public static void main(String[] args) {
        int sum=1;
        for(int i = 2;i<=100;i++){
            if(i%2==0){
                sum+=i;
            }else {
                sum-=i;
            }
        }
        System.out.println(sum);
    }

结果为  52

谢谢观看!!希望喜欢的朋友关注,点赞。作者会持续发布Java 0基础入门教程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值