Day 17 Swap

在Java中传递参数的方法只有一种那就是传值,所以在交换数值A B时假如直接用 A = B 的话,会发生以下状况
https://ithelp.ithome.com.tw/upload/images/20210929/201404567KtMwNEyJe.png

由上图可知,a b 没有交换,反而是 a变成了b的值,而b还是b,
因为a = b 代表把b的值传入a。

因此我们要用swap方法才可以完成交换的动作
概念是宣告另一个物件,在交换的过程将要交换的数暂放在那个物件。
方法如下
https://ithelp.ithome.com.tw/upload/images/20210929/20140456UzErucyVGU.png

宣告整数c,并将a的值先放到c,再把b的值放到a,最後将c的值放到b,
即可完成交换的动作。
https://ithelp.ithome.com.tw/upload/images/20210929/20140456cygRlKsK6r.png

以下有一个洗牌的例子:有A-E五张牌,在每次程序执行执行洗牌的动作。

Step 1 建立String阵列 把A-E放入此阵列
https://ithelp.ithome.com.tw/upload/images/20210929/20140456tkJ7Oet13q.png

Step 2 进入第一个for回圈,其条件 int i = 0,表示从第零项开始,i代表地i项; i < array.length,代表i会小於阵列的长度; 最後i++,产生完一个乱数就加1,往下一项产生。并产生0-4的乱数,用random方法。
https://ithelp.ithome.com.tw/upload/images/20210929/2014045697pJNYoJTC.png

Step 3 用swap方法将产生的乱数进行交换,在for回圈内,直到4个乱数产生完。
https://ithelp.ithome.com.tw/upload/images/20210929/201404560IA1TlnRe4.png

Step 4 进入另一个for回圈,条件一样,符合的话印出洗牌结果。
https://ithelp.ithome.com.tw/upload/images/20210929/20140456rw7LWgHjfQ.png

程序全码及执行结果如下:
https://ithelp.ithome.com.tw/upload/images/20210929/20140456PlhJ6VJn0m.png


<<:  Smalltalk 语言和你 SAY HELLO!!

>>:  Day014 X Code Splitting & Dynamic Import

Day 17 - 专案实战-记帐系统

前17天中,我们快速的Review了Vue的用法,紧接着开始我们的专案实战罗! 这次要来实作的专案是...

阅读.evtx文件--关於从16进位看事件纪录这回事

事情来自某天我在找资料的过程中,看到有些大大提供了事件纪录档的文本说明,所以今天要来试着阅读.evt...

day 21 - NSQ Producer

Producer是讯息发送方, 他会对nsqd发送讯息, nsqd支援TCP(port:4150) ...

Day 18 终於写了一个测Provider的最初版

来我们今天先写一个简单的Provider,这个Provider没有做效能优化,也没有把hook集结在...

【D4】汇入交易资料

前言 这是需要调整资料库连线资讯,修改成符合MySQL的格式。 本次也会参考《【Day10】Azur...