我正在做一个基本的Java教程,下面是问题。
编写一个方法,打印从1到100的数字。但是对于三个打印的倍数ÒFizzÓ而不是数字,以及五个打印的ÒBuzzÓ的倍数。对于三和五的倍数的数字打印ÒFizzBuzzÓ。“
我的代码在
下面public static void fizzBuzz(){
for(int i = 0; i < 101; i= i +1 )
System.out.println(i);
if (i%3 == 0){
System.out.println("ÒFizzÓ");
}else if (i % 5 == 0){
System.out.println("ÒBuzzÓ");
}else if (i % 15 == 0){
System.out.println("ÒFizzBuzzÓ");
}
}
Eclipse告诉我“i”无法解析为变量。这让我感到困惑,因为我认为我已经在我的for循环中将“i”定义为整数?感谢您抽出宝贵时间来解决这个新手问题:)
答案 0 :(得分:3)
在第一个语句后添加大括号或循环体结束。此外,对于您的方法,您需要首先测试15,因为它是3和5的倍数
for(int i = 0; i < 101; i++) { // <-- i++ is short for i = i + 1
System.out.println(i);
if (i % 15 == 0) {
System.out.println("ÒFizzBuzzÓ");
} else if (i % 5 == 0) {
System.out.println("ÒBuzzÓ");
} else if (i % 3 == 0) {
System.out.println("ÒFizzÓ");
}
}
答案 1 :(得分:2)
我知道一个有趣的故事,因为开发人员使用if
块更新了代码但是...... if
语句只有一条指令且没有大括号,因此Apple损失了几百万美元他没有看到它。因此,他满意条件时愿意添加的代码实际上总是被执行。
在你的情况下,你不会赔钱,但你肯定也犯了同样的错误:
for(int i = 0; i < 101; i= i +1 ) {
System.out.println(i);
if (i % 15 == 0){
System.out.println("ÒFizzBuzzÓ");
} else if (i%3 == 0){
System.out.println("ÒFizzÓ");
} else if (i % 5 == 0){
System.out.println("ÒBuzzÓ");
}
}
答案 2 :(得分:0)
当Java说某些东西无法作为变量解析时,它通常在声明的范围之外使用,或者根本没有声明它。在你的情况下,你的无括号for循环导致问题。