分号不背这个锅

3月8号是中国妇女节,3月7号俗称女神节,而每年的女神节的横幅在校内都被玩出一朵花了。

就在前几年,某校的 14 级软四的男生给同校妹子做了一条横幅,内容也是霸气外露:

for(int i=0; i<forever;i++); printf("I Love My Girl");

那这段代码是想表达什么意思呢?

我爱我的女孩直到永远。

这条横幅的确很有创意,但大家发现代码里面有个严重的问题:

for 语句后面加了一个分号后,将会循环执行多次空操作后,才会去执行第二条语句 printf,而这个多次又是 forever(永远),也就是说第二条语句永远都不会被执行,此时我笑出了声。

于是女孩拒绝了男孩的表白。

一个悲伤的故事。

来看看网友们的评论:

网友们的评论

另外我把这段代码拷贝出来后,其实根本不能运行的。因为这段 C 语言代码是个简写的代码,缺少很多东西。大家也不用较真哈~

给你瞅瞅报错的情况:

报错情况

我稍作了修改,定义了变量 forever 和 i,还将 for 后面的分号改成了花括号。另外因为 forever 是个无穷大的正数,我就用 100 来简化代替吧。

#include <stdio.h>  void main () {  int forever = 100;  int i;  for( i=0; i<forever; i++) {   printf("I Love My Girl");  } }

这次执行结果对了:

而另外一名学生看到前人的悲剧后,对代码进行了改进,解决了分号的问题,大家来看看:

意思就是:永远是女生节。暖心了啊!

还有哪些语言需要分号

上面提到的是 C 语言需要用分号来断句,那还有哪些语言需要使用分号呢?

我把常见的语言列在这里了,大家可留言补充或纠正,以后写代码千万得注意了。

需要分号的:

  • PHP、Java、C++、C#、SQL、Pascal。

不需要分号的:

  • Python

分号可选:

  • JavaScript

  • Scala

其他有创意的横幅

  • 0 error 也不抵你的微笑

这一定是编译报错见得太多了。。

  • 二进制 520

这个简单,我都看出来了,二进制转十进制,520,哈哈!

  • 变量赋值

Girls_Day::isHappy = true;

 

变量赋值

讲真,这里命名又是下划线又是驼峰的,这位同学,要注意代码规范呀!

  • 对象和作用域

这个班的学生就很秀了,用面向对象玩出了一朵花,我们班的女神,被我们班男生保护着!

  • 0 和 1,计算机都懂了

本文转载自微信公众号「悟空聊架构」,可以通过以下二维码关注。转载本文请联系悟空聊架构公众号。