头图

女神节表白:因一个分号被拒

分号不背这个锅

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

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

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

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

我爱我的女孩直到永远。

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

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

于是女孩拒绝了男孩。

一个悲伤的故事。

来看看网友们的评论:

mark

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

给你瞅瞅报错的情况:

mark

我稍作了修改,定义了变量 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");
    }
}

这次执行结果对了:
mark
而另外一名学生看到前人的悲剧后,对代码进行了改进,解决了分号的问题,大家来看看:
正确解法
意思就是:永远是女生节。暖心了啊!

还有哪些语言需要分号

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

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

需要分号的:

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

不需要分号的:

  • Python

分号可选:

  • JavaScript
  • Scala

其他有创意的横幅

  • 0 error 也不抵你的微笑

0 error 也不抵你的微笑
这一定是编译报错见得太多了。。

  • 二进制 520

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

  • 变量赋值

    Girls_Day::isHappy = true;

变量赋值

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

  • 对象和作用域

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

  • 0 和 1,计算机都懂了

0 和 1,计算机懂了
好了,女神节,横幅拿走不谢,赶紧用来给你喜欢的妹纸发条微信吧!这次脱单稳了!

(横幅图片来源网络)


作者简介:悟空,8年一线互联网开发和架构经验,用故事讲解分布式、架构设计。《JVM性能优化实战》专栏作者,开源了《Spring Cloud 实战 PassJava》项目,自主开发了一个 PMP 刷题小程序。关注公众号:悟空聊架构可免费刷题。

我是悟空,努力变强,变身超级赛亚人!


悟空聊架构
36 声望5.2k 粉丝