Day05:就像是刷牙洗脸倒垃圾

今天大概的进度要进到Controlling Program Flow,不过我自己对於这个章节好像没有什麽特殊的心得,硬要说的话大概也就是switch...case...在case的陈述中要记得结尾加上break,不然程序按照预期跑进case後没有遇到break就会再继续执行下一个case。
想了想,觉得最值得讨论的大概就是for回圈中时常应用到的"++"概念吧,那就决定多说一点这部分。

来看看以下程序:

int i = 0;
int num = 0;
num = i++;
System.out.println(num);

这个num会印出什麽结果呢? 答案是「0」。
咦? 我们不是有给他++了吗? 应该要变成1吧?
那我们再看看下面这个:

int i = 0;
int num = 0;
num = ++i;
System.out.println(num);

这次的印出结果就会是「1」了。

为什麽会有这样的区别呢?

这时候我们就必须拆解一下num = i++以及num = ++i的行为了。
num = i++ => num = i, i = i + 1
num = ++i => i = i + 1, num = i
就像上面这样,当我们的i++或者++i有指派给其他变数的时候,就会有先後顺序上的差异; num = i++会先把i指派给num後,i本身再+1; 而num = ++i则是i自己先+1,然後再指派给num。

不过值得多想一点的是,就i本身来说,结果都会是一样的,i一定会被+1,但是如果这样++的叙述有被指派给其他变数时,就要多注意了。


<<:  [NestJS 带你飞!] DAY03 - Controller (上)

>>:  [履历]你要对自己的履历了若指掌

Day27 firbase hosting

firebase hosting 是 firebase 所推出一种快速,安全和可靠的方式来托管应用程...

Ruby基本介绍(三)-P与Puts方法的差异

今日K-pop推荐! 本篇文章会提到的事 预防针:如资讯有错,欢迎指正分享,感谢您。 P与Puts差...

Day [27] Azure 认知服务-Custom Vision

前言 我们已将Cahtbot与Azure 认知服务(Cognitive Services)中的LUI...

功能与优化,请选择

如果你有约七个後端与资料库工程师,四个前端工程师,年资0到8年不等,大家合作从零开始打造这个产品,开...

MLOps专案关於安全性与合规性的10件注意事项

在ML的专案中,从资料的收集、建构模型、测试到部署到产品。这个流程除了需要自动化之外,也需要保有该行...