Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

C#

Nuradin Sheikh
Nuradin Sheikh
6,211 Points

Having an issue displaying the word "FizzBuzz" if it is a multiple of both 3 and 5?

I'm making a console application that follows the game fizz buzz. I managed to display the words "fizz" for multiples of 3 and "buzz" for multiples of 5 but can't seem to display "Fizz Buzz" if the number is multiples of 3 and 5. Can someone show me where I'm going wrong?

using System;
using System.IO;

namespace Practice
{
    class Practice

    {

        public static void FizzBuzz()
        {
            for (int i = 1; i <= 100; i++) {

                if (i % 3 == 0) {
                    Console.WriteLine("Fizz");
                }
               else if (i % 5 == 0)
                {
                    Console.WriteLine("Buzz");

                }
              else  if (i % 3 == 0 && i % 5 ==0) {
                    Console.WriteLine("both");
                }
                else
                {
                    Console.WriteLine(i);
                }
            }




        }
        public static void Main(string[] args)
        {
            FizzBuzz();
            Console.WriteLine("Press Enter to exist the application");
            Console.ReadKey();

        }

    }


}
Nuradin Sheikh
Nuradin Sheikh
6,211 Points

I know I'm printing the word "both" instead of "Fizz buzz" even with that it still won't show up on the console application

2 Answers

Steven Parker
Steven Parker
216,045 Points

You just need to re-order your tests so that the one for "both" is done first. As it is now, if either of the simple conditions is true, the test chain stops there and never gets to the combined test.

Also, if you actually want to display the word "FizzBuzz", you'll need to substitute it for "both" in the output statement.

And instead of "exist", you probably meant to write "exit".

Nuradin Sheikh
Nuradin Sheikh
6,211 Points

Thank you so I guess getting the order of the if statements right is important?

Steven Parker
Steven Parker
216,045 Points

An important part of program design is determining the order of operations. This is particularly important with statements that control the program flow, such as the "if" tests here.

Yea, ofcourse is very important. When if statment is executed, other else statments followed aren't executed because one part break another.

So when you iterate ex. "15" you will se only Fizz. If you want to get result what you expected you should to split this if-else statment to 4 small if statments