我正在做一个基本的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%15 == 0){
System.out.println("ÒFizzBuzzÓ");
}else if (i % 3 == 0){
System.out.println("ÒBuzzÓ");
}else if (i % 5 == 0){
System.out.println("ÒFizzÓ");
}
}
}
它似乎运行良好,但仔细检查输出后,“Fizz”和“Buzz”线在相关数字后打印,不打印作为数字的替代
例如,我得到以下
9
ÒBuzzÓ
10
ÒFizzÓ
11
12
ÒBuzzÓ
13
14
15
ÒFizzBuzzÓ
16
如何将相关数字替换为正确的字符串语句而不是我目前的字符串语句?我只是设法找到将字符串转换为整数的技巧,但没有在SO上将整数替换为字符串,所以我将不胜感激任何帮助:)
答案 0 :(得分:4)
在if else梯形图的else部分中移动数字打印,如下所示:
for(int i = 1; i < 101; i= i +1 ){
if (i%15 == 0){
System.out.println("ÒFizzBuzzÓ");
}else if (i % 3 == 0){
System.out.println("ÒBuzzÓ");
}else if (i % 5 == 0){
System.out.println("ÒFizzÓ");
} else {
System.out.println(i);
}
}