HAI 1.2
I HAS A Fizz ITZ 3
I HAS A Buzz ITZ 5
IM IN YR FrootLoopz UPPIN YR Frootz TIL BOTH SAEM Frootz AN 100
BTW Frootz runs 0 through 99
I HAS A Froot ITZ SUM OF Frootz AN 1
BTW Froot will run 1 through 100
BOTH SAEM 0 AN MOD OF Froot AN PRODUKT OF Fizz AN Buzz
O RLY?
YA RLY
Froot R "FizzBuzz"
NO WAI
BOTH SAEM 0 AN MOD OF Froot AN Fizz
O RLY?
YA RLY
Froot R "Fizz"
NO WAI
BOTH SAEM 0 AN MOD OF Froot AN Buzz
O RLY?
YA RLY
Froot R "Buzz"
OIC
OIC
OIC
VISIBLE Froot
IM OUTTA YR FrootLoopz
VISIBLE "DOWN WITH FIZZBUZZ LOL"
KTHXBYE
#1 楼
我喜欢您如何将Fizz和Buzz声明为“常量”。它使代码更易读。注释也很有用,但是为了保持一致,第二个注释应从以下内容更改: >
到
BTW Froot will run 1 through 100
从
Froot
生成Frootz
的想法也是很好的,因为它减少了代码后面的计算。 /> 我只希望您使用比
Frootz
更好的名称,因为它与Froot
冲突。相似之处是...。不可思议。我建议使用
Loopz
名称:BTW Froot runs 1 through 100
这样可以减少歧义,并改善可读性和可维护性。
最后,最好将
Fizz
取模检查放在Buzz
检查之前,因为这样可以提高性能。许多人把嗡嗡声放在第一位,但这意味着以5模进行检查,并且比以3模进行检查的失败更多,因此首先进行Buzz循环的人往往会进行约20%的条件检查。 > 首先,您的结果给我留下了深刻的印象。我等不及要在lolcode中实现fim ++解释器。到那时!
评论
\ $ \ begingroup \ $
给定名字,回答这个问题很合适。
\ $ \ endgroup \ $
–user22048
2014年8月29日在23:02
\ $ \ begingroup \ $
这里的决定很艰难,我给你打个勾。在循环外发出嗡嗡声。
\ $ \ endgroup \ $
–马修·金登(Mathieu Guindon)♦
2014年8月30日13:15
\ $ \ begingroup \ $
我必须检查并确保fim ++仍然不存在。 ew。再安全一年。
\ $ \ endgroup \ $
–RubberDuck
16 Dec 15'在10:43
\ $ \ begingroup \ $
@RubberDuck什么是fim ++?
\ $ \ endgroup \ $
–airlandingheringaahing
17年4月27日在21:17
\ $ \ begingroup \ $
@ user00001亲爱的公主Celestia ... esolangs.org/wiki/FiM%2B%2B
\ $ \ endgroup \ $
–RubberDuck
17年4月27日在21:45
#2 楼
我真的不敢相信我现在正在审查lolcode。因此,小写变量会更惯用,但为了便于阅读,我会使用camelCase。Frootloopz
是有创意且惯用的,但是Froot
除了与Frootloopz
无关之外,没有任何意义。 Loopz
仍然是惯用语,而counter
则更有意义。 如@Pimgd所述,可以通过将
O RLY?, YA RLY
放在一行上来减少嵌套。 代码既可以计算也可以打印。 LOLCODE支持功能。我将用它来分离关注点。特别是因为这是学习语言的练习。
函数以开始关键字
HOW IZ I
和结束关键字IF U SAY SO
标记。语法如下:HOW IZ I <function name> [YR <argument1> [AN YR <argument2> …]]
<code block>
IF U SAY SO
#3 楼
缩进您已经使用了这样的结构:
O RLY?
YA RLY
Froot R "Buzz"
OIC
我不太喜欢。它具有额外的缩进级别。相反,我会选择执行以下操作:
O RLY?, YA RLY
Froot R "Buzz"
OIC
您确实在一行上获得了多个语句,但是我会看到
IZ WIN
(对于那些LOLCODE的人来说,是== true
-缺乏经验)作为if语句的一部分。我想应该是这样的 I HAS A Froot ITZ SUM OF Frootz AN 1
BTW Froot will run 1 through 100
因为没有按变量分配的缩进级别。 >
100
应该是一个常量,其名称描述其含义。诸如FIZZBUZZLIMIT
或MAXFIZZBUZZNUMBR
之类的东西。甚至STAHP
...,但是描述性可能不如其他名称。评论
\ $ \ begingroup \ $
您还叫数字100吗?匈奴
\ $ \ endgroup \ $
–RubberDuck
2014年8月29日14:31
\ $ \ begingroup \ $
@RubberDuck限制,MaxLines,金额...这与值无关,而与上下文有关。那100可能是1000或250或1337。您何时要停止FizzBuzz?
\ $ \ endgroup \ $
– Pimgd
2014年8月29日14:53
\ $ \ begingroup \ $
确保您没有提出这个建议。 codereview.stackexchange.com/q/44047/41243
\ $ \ endgroup \ $
–RubberDuck
2014年8月29日14:55
\ $ \ begingroup \ $
我谨建议变量名称STAHP
\ $ \ endgroup \ $
– Mike G
2014年8月29日在18:31
评论
我期待的是CHEEZE和BURGER,而不是FizzBuzz。关于用玩笑语言编写的代码的认真代码审查?并询问所述代码的惯用性?有时我想知道这个地方。
@fluffy我也开始想知道,对此我们有一个元问题。