Java Challenge - FizzBuzz

This community-built FAQ covers the “FizzBuzz” code challenge in Java. You can find that challenge here, or pick any challenge you like from our list.

Top Discussions on the Java challenge FizzBuzz

There are currently no frequently asked questions or top answers associated with this challenge – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this challenge. Ask a question or post a solution by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this challenge, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!
You can also find further discussion and get answers to your questions over in #get-help.

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head to #get-help and #community:tips-and-resources. If you are wanting feedback or inspiration for a project, check out #project.

Looking for motivation to keep learning? Join our wider discussions in #community

Learn more about how to use this guide.

Found a bug? Report it online, or post in #community:Codecademy-Bug-Reporting

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

import java.util.*;

public class FizzBuzz {
public static void main(String args) {
System.out.println(fizzbuzz(16));
}

public static ArrayList fizzbuzz(int n)
{
// Write your code here
ArrayList arr = new ArrayList();

for(int i = 1; i <= n; i++)
{
  if(i % 3 == 0 && i % 5 == 0)
  {
    arr.add("FizzBuzz");
  }

  else if(i % 3 == 0)
  {
    arr.add("Fizz");
  }

  else if(i % 5 == 0)
  {
    arr.add("Buzz");
  }

  else
  {
    arr.add(i);
  }
}

return arr;

}
}

I struggled a bit before I realised that the order do matter in regards to “FizzBuzz” :slight_smile:

public static ArrayList fizzbuzz(int n)
{
    ArrayList<Object> fizzBuzz = new ArrayList<Object>();

    // Looping from 1 -> n
    for (int i = 1; i <= n; i++) {

        // It's important to check FizzBuzz first else you only get buzz or fizz added to the ArrayList. The order matters!
        if (((i % 3) == 0) && ((i % 5) == 0)) {
            fizzBuzz.add("FizzBuzz");
        } else if ((i % 5) == 0) {
            fizzBuzz.add("Buzz");
        } else if ((i % 3) == 0) {
            fizzBuzz.add("Fizz");
        } else {
            fizzBuzz.add(i);
        }
    }

    return fizzBuzz;
}

}

1 Like

I agree that the order matters. As per the challenge this is what they look for.

class FizzBuzz{

public static void main (String args){

for(int i = 1; i <= 100; i++){

if(((i % 5) == 0) && ((i % 3)== 0)){

System.out.println("FizzBuzz");

}else if((i % 5) == 0){

System.out.println("Buzz");

}else if((i % 3) == 0){

System.out.println("Fizz");

}else

System.out.println(i);

}

}

}

1 Like

public static ArrayList fizzbuzz(int n) {
ArrayList arr = new ArrayList<>();

for(int i = 1; i<= n; i++){
  if(i % 15 ==0){
    arr.add("FizzBuzz");
  } 
  else if(i % 3 == 0){
    arr.add("Fizz");
  } 
  else if(i % 5 ==0){
    arr.add("Buzz");
  } else arr.add(i);

}
  return arr;

}
}

I tried to do the task without googling so having forgotten the syntax of the FOR loop or a STREAM I went with a WHILE:

import java.util.*;

public class FizzBuzz {
  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

  public static ArrayList fizzbuzz(int n) 
  {
        int i = 1;

        ArrayList result = new ArrayList();

        while (i <= n) {
            if ((i % 5) == 0 && (i % 3) == 0) {
                result.add("FizzBuzz");
            } else if ((i % 3) == 0) {
                result.add("Fizz");
            } else if ((i % 5) == 0) {
                result.add("Buzz");
            } else {
                result.add(i);
            }
            i++;
        }
        return result;
  }
}

InteliJ and Google really do help you to forget stuff.

If I had remembered STREAMs and if it was allowed I might have tried this:

        ArrayList result = new ArrayList();

        IntStream.rangeClosed(1, n)
                .mapToObj(i -> i % 5 == 0 ? (i % 3 == 0 ? "FizzBuzz" : "Buzz") : (i % 3 == 0 ? "Fizz" : i))
                .forEach(result::add);

        return result;

This has been a nice challenge. And yes, the order matters. :slight_smile:

public class FizzBuzz{

public static void main(String args){

for (int i=1; i <=100; i++) {
  if (i % 3 == 0 && i % 5 == 0){
    System.out.println("FizzBuzz");
    i++;
  } if (i % 3 == 0){
    System.out.println("Fizz");
    i++;
    } if (i % 5 == 0){
    System.out.println("Buzz");
    } else {
    System.out.println(i);
    continue;
    } 
  }
} 

}

1 Like

Finally, I did it!

import java.util.*;

public class FizzBuzz {
  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

  public static ArrayList fizzbuzz(int n) {
    ArrayList<Object> fizzbuzz = new ArrayList<Object>();
    for(int i = 1; i <= n; i++) {
      if (i % 3 == 0 && i % 5 == 0) {
        fizzbuzz.add("FizzBuzz");
      }else if (i % 3 == 0) {
        fizzbuzz.add("Fizz");
      }else if (i % 5 == 0) {
        fizzbuzz.add("Buzz");
      }else{ 
        fizzbuzz.add(i);
      }
    } return fizzbuzz;
    }
}

This was my go with using ternaries.

import java.util.*;

public class FizzBuzz {
  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

 public static ArrayList fizzbuzz(int n) 
  {
    ArrayList<Object> arr = new ArrayList<Object>();
    for(int i = 1; i<=n; i++){
      arr.add(
        i%15 == 0 ? "FizzBuzz" 
          : i%3 == 0 ? "Fizz" 
            : i%5 == 0 ? "Buzz" 
              : i
      );
    }
    return arr;
  }
}
import java.util.*;

public class FizzBuzz {
  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

  public static ArrayList fizzbuzz(int n) 
  {
    ArrayList<Object> array = new ArrayList<>();
    // Write your code here
    for(int a  = 1; a <= n; a++){
      if(a%3 == 0 && a%5 == 0){
array.add("FizzBuzz");
      }else if(a%5 == 0){
array.add("Buzz");
      }else if(a%3 == 0){
        array.add("Fizz");
      }else{
array.add(a);
      }
    }
    return array;
  }
}

import java.util.*;

public class FizzBuzz {
public static void main(String args) {
System.out.println(fizzbuzz(16));
}

public static ArrayList fizzbuzz(int n)
{
// Write your code here
ArrayList res = new ArrayList<>();
for(int i=1;i<=n;i++){
if(i%3==0&&i%5==0)
res.add(“FizzBuzz”);
else if(i%3==0)
res.add(“Fizz”);
else if(i%5==0)
res.add(“Buzz”);
else
res.add(i);
}
return res;
}
}

I am a bit confused by this challenge because my teacher used to say that it is not really a good idea to use an ArrayList for example with Object type. Normally we should specify the data type, in this case for example I wanted to use String at first, since Integers can also be converted to String easily, but after seeing the tests fail, I changed my code.

import java.util.*;
import java.util.ArrayList;

public class FizzBuzz {
public static void main(String args) {
System.out.println(fizzbuzz(16));
}

public static ArrayList fizzbuzz(int n)
{
ArrayList numbers = new ArrayList<>();
for (int i = 1; i <= n; i++) {
boolean isDivisibleByFive=i%5==0;
boolean isDivisibleByThree=i%3==0;

        if(isDivisibleByFive&&isDivisibleByThree){
            numbers.add("FizzBuzz");
        }else if(isDivisibleByThree){
            numbers.add("Fizz");
        }else if(i%5==0){
            numbers.add("Buzz");
        }else{
            numbers.add(i);
        }
    }
    return numbers;

}
}

Solution with 3 ifs instead of 4!

import java.util.*;

public class FizzBuzz {

  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

  public static ArrayList fizzbuzz(int n) {

    ArrayList<Object> numbers = new ArrayList<>();

    for(int i = 1; i <= n; i++){

        if(i % 3 != 0 && i % 5 != 0){
          numbers.add(i);
          continue;
        }
        String fizzbuzz = "";

        if(i % 3 == 0){
          fizzbuzz += "Fizz";
        }

        if(i % 5 == 0){
          fizzbuzz += "Buzz";
        }
        numbers.add(fizzbuzz);
    }
    return numbers;
  }
}

I read that is not a good practice to use the Object type, so i used the String type for the ArrayList and converted the i variable into string before adding it to the ArrayList.

import java.util.*;

public class FizzBuzz {
  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

  public static ArrayList fizzbuzz(int n) 
  {
    // Write your code here
    // declaring a new ArrayList, in which we will store the FizzBuzz game
    ArrayList<String> fizzBuzz = new ArrayList<String>();
    // using a for loop, in which we check if a number is multiple of 3, 5, both or neither
    for (int i = 1; i <= n; i++){
      if (i % 3 == 0 && i % 5 == 0) {
        fizzBuzz.add("FizzBuzz");
      } else if (i % 3 == 0) {
        fizzBuzz.add("Fizz");
      } else if (i % 5 == 0){
        fizzBuzz.add("Buzz");
      } else {
        // converting int value i in a string and storing it in the ArrayList
        String conv = String.valueOf(i);
        fizzBuzz.add(conv);
      }  
    }
    return fizzBuzz;
  }
}

My answer (pretty simple in Java)!

import java.util.*;

public class FizzBuzz {
  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

  public static ArrayList fizzbuzz(int n) 
  {
    ArrayList nums = new ArrayList(n);

  for(int i = 1; i<=n; i++)
  {
    if(i%3==0 && i%5==0)
    {
      nums.add("FizzBuzz");
    }
    else if(i%5==0)
    {
      nums.add("Buzz");
    }
    else if(i%3==0)
    {
      nums.add("Fizz");
    }
    else {
      nums.add(i);
    }
  }

  return nums;

  }
}

I don’t think the order necessarily matters, at least mine works without checking for the FizzBuzz condition first. It just requires additional logic for each check:

public class FizzBuzz {
    public static void main(String[] args) {
        System.out.println(fizzbuzz(16));
    }

    public static ArrayList fizzbuzz(int n) {
        ArrayList list = new ArrayList(n);
        
        for (int i = 1; i <= n; i++) {
            if ((i%3 == 0) && (i%5 != 0)) {
                list.add("Fizz");
            }
            else if ((i%3 != 0) && (i%5 == 0)) {
                list.add("Buzz");
            }
            else if ((i%3 ==0) && (i%5 == 0)) {
                list.add("FizzBuzz");
            }
            else {
                list.add(i);
            }
        }
        return list;
    }
}

import java.util.*;

public class FizzBuzz {
public static void main(String args) {
System.out.println(fizzbuzz(16));
}

public static ArrayList fizzbuzz(int n)
{
ArrayList ans = new ArrayList();
for ( int i = 1 ;i <=n ; i++){

      if (i%3==0&&i%5!=0){
          ans.add("Fizz");
      }

     else  if (i%5==0&&i%3!=0){
          ans.add("Buzz");
      }
      else   if (i%3==0 && i%5==0){
          ans.add("FizzBuzz");

      }

      else {
          ans.add(i);
      }
  }
  return  ans ;

}
}

I accidentally wrote 16 instead of n in the code and I struggled for 15 minutes before seeing that. I hope you didn’t do the same mistake :sweat_smile:

import java.util.*;

public class FizzBuzz {
  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

  public static ArrayList fizzbuzz(int n) 
  {
    // Write your code here
  ArrayList list = new ArrayList(); 
  for(int i = 1; i<=n; i++){
    if(i!= 0 && ((i%3 == 0)&& (i%5 != 0))){
      list.add("Fizz");
    }
    else if (i != 0 && ((i%5 == 0)&&(i%3 != 0))){
      list.add("Buzz");
    }
    else if ((i%5==0)&&(i%3 ==0)){
      list.add("FizzBuzz");
    }
    else{
      list.add(i);
    }
  }
  return list;
  }
}

I didn’t know I could use module for this challengue :open_mouth:

import java.util.*;

public class FizzBuzz {
  public static void main(String[] args) {
    System.out.println(fizzbuzz(16));
  }

  public static ArrayList fizzbuzz(int n) 
  {
            ArrayList Fizz = new ArrayList(n);

        for (int k = 1; k <= n; k++) {

            if (multiplo(k, n, 5) && multiplo(k, n, 3)){
                Fizz.add("FizzBuzz");
            } else if (multiplo(k, n, 5)) {
                Fizz.add("Buzz");
            } else if (multiplo(k, n, 3)) {
                Fizz.add("Fizz");
            } else {
                Fizz.add(k);
            }

        }


        return Fizz;
  }

    public static Boolean multiplo(int counter, int limit, int multiplier){

        for (int i = 1; i <= limit; i++) {

            int filter = multiplier * i;
            
            if(counter == filter){
                return true;
            }
        }

        return false;
    }


}