Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialNeymat Kakar
iOS Development Techdegree Student 786 Pointscollections and control flow
Challenge Task 1 of 1
Enter your FizzBuzz solution here! Before you hit submit, make the following changes:
Step 1: Enter your code in between the comments shown below. The code is going inside a "function" that will help verify your solution.
Step 2: Change your variable/constant name that you are checking in each step to n. For example if (n % 3 == 0). Note: You don't need to create n, it is already provided.
Step 3: Change all your print statements to return statements. For example: print("FizzBuzz") becomes return "FizzBuzz".
While these are very specific directions, they allow me to verify your solution precisely over a large number of possible answers.
Note: Do not worry about the default case (where the number doesn't match Fizz, Buzz, or FizzBuzz). The code in the challenge editor already takes care of that by returning the number as a string using string interpolation.
The challenge also does not need you to loop over a range of values (using for or while). I'll take care of that.
func fizzBuzz(n: Int) -> String {
// Enter your code between the two comment markers
if (n % 3 == 0)
{
print ("fizz")
}
else if (n%5 == 0)
{
print ("Buzz")
}
else if (n%3==0) && (n%5==0)
{
return "fizzBuzz"
}
// End code
return "\(n)"
}
2 Answers
Sam Baldwin
7,018 PointsYou may want to look at the order you have written your if/else statements in.
If we use the number 15 as our input variable (n), we would only see "Fizz" returned. As your first check is (n % 3 == 0), and 15 is divisible by three, we meet the criteria to return "Fizz". This means we never get to the check for (n % 3 == 0) && (n % 5 == 0), as we have already met an agreeable case for our input.
David Papandrew
8,386 PointsIn order to pass, you need to make 2 changes to your code:
1) Change the order of the if statement conditions. The check for multiples of 3 & 5 should happen first.
2) Change the print statements to return statements
Should pass once you make those changes.
func fizzBuzz(n: Int) -> String {
// Enter your code between the two comment markers
if (n%3==0) && (n%5==0)
{
return "fizzBuzz"
}
else if (n%5 == 0)
{
return "Buzz"
}
else if (n%3==0)
{
return "fizz"
}
// End code
return "\(n)"
}