patternjavaModerate
FizzBuzz using switches
Viewed 0 times
switchesusingfizzbuzz
Problem
I'm learning about control structures now, and I want to see if I'm doing this as cleanly and efficiently as possible. Seems like there should be a less... verbose way of writing the
FizzBuzz.java
switch but I wouldn't know what it is. Any criticism welcome!FizzBuzz.java
public class FizzBuzz {
public static final int fizz = 3;
public static final int buzz = 5;
public static void main(String[] args) {
int status = -1;
for (int fbNumber = 1; fbNumber <= 100; fbNumber++) {
if ((fbNumber % fizz == 0) && (fbNumber % buzz == 0)) {
status = 1;
} else if ((fbNumber % fizz == 0) && (fbNumber % buzz != 0)) {
status = 2;
} else if ((fbNumber % fizz != 0) && (fbNumber % buzz == 0)) {
status = 3;
} else {
status = 4;
}
switch (status) {
case 1:
System.out.println("FizzBuzz");
break;
case 2:
System.out.println("Fizz");
break;
case 3:
System.out.println("Buzz");
break;
case 4:
System.out.println(fbNumber);
break;
default:
System.out.println("Number could not be evaluated");
}
}
}
}Solution
Constants
The use of
fizz and buzz should be ALL_CAPS, by convention.The use of
status and the switch is unjustified. Why complicate things by setting a variable to alter behaviour a few lines later?public class FizzBuzz {
public static final int FIZZ = 3;
public static final int BUZZ = 5;
public static void main(String[] args) {
for (int fbNumber = 1; fbNumber <= 100; fbNumber++) {
if ((fbNumber % FIZZ == 0) && (fbNumber % BUZZ == 0)) {
System.out.println("FizzBuzz");
} else if ((fbNumber % FIZZ == 0) && (fbNumber % BUZZ != 0)) {
System.out.println("Fizz");
} else if ((fbNumber % FIZZ != 0) && (fbNumber % BUZZ == 0)) {
System.out.println("Buzz");
} else {
System.out.println(fbNumber);
}
}
}
}Code Snippets
public class FizzBuzz {
public static final int FIZZ = 3;
public static final int BUZZ = 5;
public static void main(String[] args) {
for (int fbNumber = 1; fbNumber <= 100; fbNumber++) {
if ((fbNumber % FIZZ == 0) && (fbNumber % BUZZ == 0)) {
System.out.println("FizzBuzz");
} else if ((fbNumber % FIZZ == 0) && (fbNumber % BUZZ != 0)) {
System.out.println("Fizz");
} else if ((fbNumber % FIZZ != 0) && (fbNumber % BUZZ == 0)) {
System.out.println("Buzz");
} else {
System.out.println(fbNumber);
}
}
}
}Context
StackExchange Code Review Q#71816, answer score: 15
Revisions (0)
No revisions yet.