java——循环嵌套

         我们在学习循环嵌套之前,先练习几个例子来回顾 for 循环相关的知识点;

举例一:

        甲/乙/丙/丁四人加工一批零件,共计 370 个,如果甲加工的零件数多 10 个,乙加工的零件数少 20 个,丙加工的零件数乘以 2 ,甲加工的零件数除以 2 ,四人加工的零件数就相等了。求甲乙丙丁分别加工了多少零件?

        解题过程:在IDEA编译源代码的时候,控制器面板出现了一串乱码。

         我将输入内容中的中文全部替换掉,发现可以正常输出;

         输出内容带有中文时,控制台会报错,提示 不支持发行版本18 ;

IDEA调试:

        本来以为就是简单的小问题,最多二十分钟就解决了,于是上网搜了大量的视频。一个早晨过去了,一个晚上过去了,除去上课经历了一天,在第二天的晚上我才最终把这个玩意儿弄好。

     我就直接说解决办法了。

        打开IDEAR——file——settings——搜索:Java Compiler,

        把这两项改为 8 ,点击 ok ,就可以了。

         如果实在不行的话,我不确定是不是我的 JDK 是不是换成了 17 版本的问题,因为在一开始我以为是 JDK 18及以上版本的问题,就把 22 版本换成了 17 版本;

于是,得到了 甲,乙丙丁 

代码优化: 

当我们写完代码后,不要急着“高兴”。我们还得思考思考,代码还需要哪些改进的地方。例如:

代码是否 规范(缩进 命名 注释) 是否具有 健壮性(逻辑严谨性);

是否可以 优化(效率 冗余 结构);

因此,我通过粗略计算缩短了 for 循环的范围,提高了程序的运行效率;

举例二:

水仙花数:通过循环找到三位数的水仙花数:

        153——>1        5        3 ; 1*1*1 + 5*5*5 + 3*3*3 == 153 ;

(1)


class Flower { public static void main(String[] args) { for (int a = 1; a <= 9; a++) { for (int b = 0; b <= 9; b++) { for (int c = 0; c <= 9; c++) { if (a * a * a + b * b * b + c * c * c == (a * 100 + b * 10 + c)) { System.out.println("abc=" + a + b + c); } } } } } }

(2)

        当然也可以利用一个循环解决问题:

 (3)

当然我们也可以使用 Math.power(double a,double b) , a 表示值,后面的数字表示 a 的几次方;

 (4)

当然,也可以这样(狗头):

三。循环嵌套

我们首先根据 控制台输出星星 来观察循环嵌套的作用:

(1)

控制台输入一行 ****  的源代码 :

(2)

        由于其不能灵活按照需求进行输出,我们做如下改进:

(3)

        我们改变要求: 输出四行,每行星星数按照要求进行输出:

(4)双层循环

        我们继续要求 行数,列数 按照我们的要求随意输出:

(5)


        我们要求其输出按照直角三角形输出,并且每层星星数从 1 递增;

(6)

        我们要求他们以靠右边的形状输出,并且固定行数:

再将符号换为空格即可;

至于按照需求控制行数的“版本”需要大家自己尝试了。

        总结:

        写完之后的感觉是,在学习过程中要学会举一反三,联想到类似的题目以及题目的“升级版”,思考他们之间的关联。

  • 23
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值