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

C# C# Basics If Statements "else if" and "else" Statements

I'm not sure how to convert. Can someone help me out?

Program.cs
using System;

class Program
{

    static string CheckSpeed(double speed)
    {
        if(speed <= 45)
        {
             Console.WriteLine("too slow");
        }
        else if(speed <= 65)
        {
            Console.WriteLine("too fast");
        }
        else
        {
            Console.WriteLine("speed OK");
        }
    }

    static void Main(string[] args)
    {
        // This should print "too slow".
        Console.WriteLine(CheckSpeed(44));
        // This should print "too fast".
        Console.WriteLine(CheckSpeed(88));
        // This should print "speed OK".
        Console.WriteLine(CheckSpeed(55));
    }

}

1 Answer

I had a similar issue with this one, i believe the question is worded a little too vaguely for the answer Treehouse is looking for.

static string CheckSpeed(double speed)
    {
       if(speed > 65){
             return "too fast";
        }
        else if(speed < 45){
            return "too slow";
        }
        else
        {
            return "speed OK";
        }
    }

A few things to note on this one:

  1. As the method has the return type of string, not void, and the main method already includes Console.WriteLine statements, all you need to return is the strings themselves.

  2. Be mindful of the different operators: greater than(>), less than (<), greater than or equal to (>=) and less than or equal to (<=). They can be easy to mix up but make code have a completely different meaning. For example speed <= 65 means 'speed is less than or equal to 65' whilst the question wanted 'speed greater than 65' (speed > 65). One way to remember the difference between greater than and less than is that less thans symbol (<) looks a little like a tilted L (for less than).

Hope this helped.