分号不背这个锅
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 语言需要用分号来断句,那还有哪些语言需要使用分号呢?
我把常见的语言列在这里了,大家可留言补充或纠正,以后写代码千万得注意了。
需要分号的:
不需要分号的:
分号可选:
其他有创意的横幅
这一定是编译报错见得太多了。。
这个简单,我都看出来了,二进制转十进制,520,哈哈!
Girls_Day::isHappy = true;
变量赋值
讲真,这里命名又是下划线又是驼峰的,这位同学,要注意代码规范呀!
这个班的学生就很秀了,用面向对象玩出了一朵花,我们班的女神,被我们班男生保护着!
本文转载自微信公众号「悟空聊架构」,可以通过以下二维码关注。转载本文请联系悟空聊架构公众号。
领取专属 10元无门槛券
私享最新 技术干货