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 trial

iOS Swift 2.0 Collections and Control Flow Control Flow With Conditional Statements FizzBuzz

Aditya Gawade
Aditya Gawade
1,182 Points

it does not work even if i replace "i" with "n". says check the values you are returning to the string.

Enter your FizzBuzz solution here! You will have to make some minor changes to get this to work with our editor though. Step 1: Copy-paste your code in between the comments shown below. Your solution is going inside a function I created. Don't worry about what it does, this just allows me to 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). You also don't need to define n. It is defined in the function 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.

fizzBuzz.swift
func fizzBuzz(n: Int) -> String {
  // Enter your code between the two comment markers
  for i in 1...100{
  if (i%3 == 0) && (i%5 == 0){
  print("FizzBuzz")
  } else if (i%3 == 0){
  print("Fizz")
  } else if (i%5 == 0){
  print("Buzz")
  } else {
  print(i)}
  }
  // End code
  return "\(n)"
}

2 Answers

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there!

The challenge explicitly asks for you to return the values of the strings. But you're printing them.

Step 3: Change all your print statements to return statements.

Also there should be no loop in your code as indicated by the challenge instructions.

The challenge also does not need you to loop over a range of values (using for or while). I'll take care of that.

Give it another go with these hints in mind! :sparkles:

Aditya Gawade
Aditya Gawade
1,182 Points

thank you but i still have an error . compiler error in the 'else {return(n)} ' part. it says: swift_lint.swift:12:10: error: cannot convert return expression of type 'Int' to return type 'String' return(n)} ^ this is my code: if (n%3 == 0) && (n%5 == 0){ return("FizzBuzz") } else if (n%3 == 0){ return("Fizz") } else if (n%5 == 0){ return("Buzz") } else { return(n)}

Jennifer Nordell
seal-mask
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Aditya Gawade you're correct! You still have one thing that's not according the specifications of the instructions. The last return statement (the one they set up) should be there. But take a look here:

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.

This means that your last else and return statement that you wrote should be removed. Give it another shot! :thumbsup:

Aditya Gawade
Aditya Gawade
1,182 Points

thank you very much! i thought by case it meant 'F' and 'B' in fizz and buzz can be capital or not