Como eu uso operadores relacionas no switch case

1 resposta
programaçãoswitch
F

eu estou tentando usar operadores relacionais neste codigo abaixo porem não da certo não sei se é a logica ou algo do tipo

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;
namespace _29._10_1

{

class Program

{

static void Main(string[] args)

{

float nota1,nota2,nota3=0;

float media;

string tmp;
Console.WriteLine("Digite  primeira nota ; ");
            tmp = Console.ReadLine();
        nota1=float.Parse(tmp);

        Console.WriteLine("Digite segunda nota numero ;");
            tmp = Console.ReadLine();
        nota2 = float.Parse(tmp);

        Console.WriteLine("Digite a terceira nota; ");
            tmp = Console.ReadLine();
        nota3 = float.Parse(tmp);

        media = (nota1 + nota2 + nota3 )/ 3;

        switch (media)
        {

            case 6:
                Console.WriteLine("aluno com a media " + media);

                break;

            case <6:
                Console.WriteLine("aluno abaixo da media " + media);
                break;

            case >6:
                Console.WriteLine("aluno acima da media" + media);
                break;
            default:
                Console.WriteLine( "invalido");
                break;



        }

        Console.ReadKey();
    }  
}

}

1 Resposta

wldomiciano

Não se usa operadores relacionais no switch. Não é erro de lógica, é uma limitação da linguagem.

Recomendo que leia:

https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/switch

Na página acima e dito que se usa uma expressão de correspondencia para verificar qual case será executado.

Se a expressão usada no switch for do tipo integral, o operador de igualdade == será utilizado. Caso contrário, a correspondencia será determinada por uma chamada ao método Object.Equals.

Criado 29 de outubro de 2017
Ultima resposta 30 de out. de 2017
Respostas 1
Participantes 2