我想试一试FizzBuzz,但要以最有效的方式进行。我认为这种方法使用了我在这里学到的大部分概念。有什么下落不明的吗?因为这是我最近一直关注的问题。
import javax.swing.JOptionPane;
public class FizzBuzzCounter {
public static void main(String[] args) {
int goalNumber = Integer.parseInt(JOptionPane.showInputDialog("FizzBuzz goal number?"));
fizzBuzzify(goalNumber);
}
public static void fizzBuzzify(int n) {
for (int i = 1; i <= n; i++) {
StringBuilder sb = new StringBuilder();
if (i % 3 == 0) sb.append("Fizz");
if (i % 5 == 0) sb.append("Buzz");
if (sb.toString().isEmpty()) System.out.println(i);
else System.out.println(sb.toString());
}
}
}发布于 2014-09-05 05:12:42
import javax.swing.JOptionPane;
public class FizzBuzzCounter {为什么这条路在这里缩进?我相信这是一个复制/粘贴问题,但事实上,你把它留在那里不会给我一个好的开始印象。
public static void main(String[] args) {
int goalNumber = Integer.parseInt(JOptionPane.showInputDialog("FizzBuzz goal number?"));你在这里有点奇怪。在这里,您通过对话框获取输入,但打印到下面的System.out。这是个混乱的组合。
fizzBuzzify(goalNumber);这对fizzBuffiy意味着什么?最好打电话给printFizzBuzz什么的。
}
public static void fizzBuzzify(int n) {在我看来,在功能之间缺少新的行突出了出来。当然,这不是错,但几乎每一种风格都有它们。
for (int i = 1; i <= n; i++) {
StringBuilder sb = new StringBuilder();
if (i % 3 == 0) sb.append("Fizz");
if (i % 5 == 0) sb.append("Buzz");
if (sb.toString().isEmpty()) System.out.println(i);
else System.out.println(sb.toString());对我来说,这是一个程序员的标志,他有向下编码的机制,但没有很好的可读性。与@rolfl这样更简单的呈现方式相比,在每种情况下都很难看到这段代码所做的事情。
}
}
}发布于 2014-09-05 12:34:24
我最讨厌的事:线长。一个好的风格指南是限制行长度最多80个字符。这提高了可读性,使代码更容易理解。
在stackexchange和github上,这一点更重要,人们也会在这里找到好的例子。让它们更容易阅读是有帮助的。(SE实际上倾向于以不同的长度中断代码行,这取决于浏览器。)
此示例有一个非常长的变量定义:
public static void main(String[] args) {
int goalNumber = Integer.parseInt(JOptionPane.showInputDialog("FizzBuzz goal number?"));
fizzBuzzify(goalNumber);
}它还可以写成:
public static void main(String[] args) {
int goalNumber = Integer.parseInt(
JOptionPane.showInputDialog("FizzBuzz goal number?")
);
fizzBuzzify(goalNumber);
}为“Java样式指南,行长”进行网络搜索会提供各种资源:(Google实际上为我突出显示了第一个)
(还有更多,其中几个也可以在因此,java编码风格的参考资料中找到)
每种语言都有自己的传统,根据我的经验,大多数语言的差异在72到132之间,中位数可能在80左右。
除了Java之外,我们还有Python的PEP8 8,具有一般80个字符的推荐,但也有愚蠢的一致性是小脑筋的妖精。。两者都是很好的建议。
https://codereview.stackexchange.com/questions/61994
复制相似问题