Which of the following statements is true of facebook?

Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Selection statements (C# reference)

  • Article
  • 11/08/2022
  • 5 minutes to read

In this article

The following statements select statements to execute from a number of possible statements based on the value of an expression:

  • The if statement: selects a statement to execute based on the value of a Boolean expression.
  • The switch statement: selects a statement list to execute based on a pattern match with an expression.

The if statement

An if statement can be any of the following two forms:

  • An if statement with an else part selects one of the two statements to execute based on the value of a Boolean expression, as the following example shows:

    DisplayWeatherReport(15.0);  // Output: Cold.
    DisplayWeatherReport(24.0);  // Output: Perfect!
    
    void DisplayWeatherReport(double tempInCelsius)
    {
        if (tempInCelsius < 20.0)
        {
            Console.WriteLine("Cold.");
        }
        else
        {
            Console.WriteLine("Perfect!");
        }
    }
    
  • An if statement without an else part executes its body only if a Boolean expression evaluates to true, as the following example shows:

    DisplayMeasurement(45);  // Output: The measurement value is 45
    DisplayMeasurement(-3);  // Output: Warning: not acceptable value! The measurement value is -3
    
    void DisplayMeasurement(double value)
    {
        if (value < 0 || value > 100)
        {
            Console.Write("Warning: not acceptable value! ");
        }
    
        Console.WriteLine($"The measurement value is {value}");
    }
    

You can nest if statements to check multiple conditions, as the following example shows:

DisplayCharacter('f');  // Output: A lowercase letter: f
DisplayCharacter('R');  // Output: An uppercase letter: R
DisplayCharacter('8');  // Output: A digit: 8
DisplayCharacter(',');  // Output: Not alphanumeric character: ,

void DisplayCharacter(char ch)
{
    if (char.IsUpper(ch))
    {
        Console.WriteLine($"An uppercase letter: {ch}");
    }
    else if (char.IsLower(ch))
    {
        Console.WriteLine($"A lowercase letter: {ch}");
    }
    else if (char.IsDigit(ch))
    {
        Console.WriteLine($"A digit: {ch}");
    }
    else
    {
        Console.WriteLine($"Not alphanumeric character: {ch}");
    }
}

In an expression context, you can use the conditional operator ?: to evaluate one of the two expressions based on the value of a Boolean expression.

The switch statement

The switch statement selects a statement list to execute based on a pattern match with a match expression, as the following example shows:

DisplayMeasurement(-4);  // Output: Measured value is -4; too low.
DisplayMeasurement(5);  // Output: Measured value is 5.
DisplayMeasurement(30);  // Output: Measured value is 30; too high.
DisplayMeasurement(double.NaN);  // Output: Failed measurement.

void DisplayMeasurement(double measurement)
{
    switch (measurement)
    {
        case < 0.0:
            Console.WriteLine($"Measured value is {measurement}; too low.");
            break;

        case > 15.0:
            Console.WriteLine($"Measured value is {measurement}; too high.");
            break;

        case double.NaN:
            Console.WriteLine("Failed measurement.");
            break;

        default:
            Console.WriteLine($"Measured value is {measurement}.");
            break;
    }
}

At the preceding example, the switch statement uses the following patterns:

  • A relational pattern (available in C# 9.0 and later): to compare an expression result with a constant.
  • A constant pattern: to test if an expression result equals a constant.

Important

For information about the patterns supported by the switch statement, see Patterns.

The preceding example also demonstrates the default case. The default case specifies statements to execute when a match expression doesn't match any other case pattern. If a match expression doesn't match any case pattern and there is no default case, control falls through a switch statement.

A switch statement executes the statement list in the first switch section whose case pattern matches a match expression and whose case guard, if present, evaluates to true. A switch statement evaluates case patterns in text order from top to bottom. The compiler generates an error when a switch statement contains an unreachable case. That is a case that is already handled by an upper case or whose pattern is impossible to match.

Note

The default case can appear in any place within a switch statement. Regardless of its position, the default case is always evaluated last and only if all other case patterns aren't matched, except if goto default is encountered.

You can specify multiple case patterns for one section of a switch statement, as the following example shows:

DisplayMeasurement(-4);  // Output: Measured value is -4; out of an acceptable range.
DisplayMeasurement(50);  // Output: Measured value is 50.
DisplayMeasurement(132);  // Output: Measured value is 132; out of an acceptable range.

void DisplayMeasurement(int measurement)
{
    switch (measurement)
    {
        case < 0:
        case > 100:
            Console.WriteLine($"Measured value is {measurement}; out of an acceptable range.");
            break;
        
        default:
            Console.WriteLine($"Measured value is {measurement}.");
            break;
    }
}

Within a switch statement, control cannot fall through from one switch section to the next. As the examples in this section show, typically you use the break statement at the end of each switch section to pass control out of a switch statement. You can also use the return and throw statements to pass control out of a switch statement. To imitate the fall-through behavior and pass control to other switch section, you can use the goto statement.

In an expression context, you can use the switch expression to evaluate a single expression from a list of candidate expressions based on a pattern match with an expression.

Case guards

A case pattern may be not expressive enough to specify the condition for the execution of the switch section. In such a case, you can use a case guard. That is an additional condition that must be satisfied together with a matched pattern. A case guard must be a Boolean expression. You specify a case guard after the when keyword that follows a pattern, as the following example shows:

DisplayMeasurements(3, 4);  // Output: First measurement is 3, second measurement is 4.
DisplayMeasurements(5, 5);  // Output: Both measurements are valid and equal to 5.

void DisplayMeasurements(int a, int b)
{
    switch ((a, b))
    {
        case (> 0, > 0) when a == b:
            Console.WriteLine($"Both measurements are valid and equal to {a}.");
            break;

        case (> 0, > 0):
            Console.WriteLine($"First measurement is {a}, second measurement is {b}.");
            break;

        default:
            Console.WriteLine("One or both measurements are not valid.");
            break;
    }
}

The preceding example uses positional patterns with nested relational patterns.

C# language specification

For more information, see the following sections of the C# language specification:

  • The if statement
  • The switch statement

For more information about pattern matching switch statement, see the following feature proposal notes:

  • Switch statement (Pattern matching)

See also

  • C# reference
  • Conditional operator ?:
  • Logical operators
  • Patterns
  • switch expression
  • Add missing cases to switch statement (style rule IDE0010)

Feedback

Submit and view feedback for

What is Facebook's motivation for offering new features under an opt out scheme quizlet?

What is Facebook's motivation for offering new features under an opt-out scheme? It ensures a larger audience, and helps enhance network effects and data advantages. _____ is a term that refers to a closed network or single set of services controlled by one dominant firm.

How are news feeds a source of value for users on Facebook?

How are News Feeds a source of value for users on Facebook? It fosters the virality of information sharing vital to delivering value from the social graph.

Which of these social media sites has the largest number of users and the highest monthly market share of visits?

1. Facebook — 2.9 billion MAUs. Facebook is the largest social media site, with more than two billion people using it every month. This means that roughly 36.9% of the world's population are Facebook users.

Where in the profile and settings area of twitter where would you click to protect tweets so that manual approval is needed to view them?

Limit what your audience sees Go to Settings → Privacy and safety → Audience and tagging and toggle off “Protect your tweets.” There's no way to stop people from tagging you in tweets, but you can prevent them from tagging you in images.