A instrução CASE como o IF também é um comando clássico e existe em muitas linguagens de programação, seja ela compilada ou interpretada. O comando Case predominou por muitos anos e nos tempos atuais ganhou uma nova cara e um novo nome apesar de permanecer com a mesma estrutura, o SWITCH. Comando CASE ainda é usado nos dias atuais por varias linguagens de programação e linguagens de scripts entre elas o ABAP, PL/SQL, TRANSACT-SQL e outras.
A instrução CASE e SWITCH é como uma série de instruções IF, apenas usando a palavra-chave WHEN (Quando) ou CASE (Caso). A instrução é avaliada a partir de cima para baixo. Se a condição for verdadeira, então correspondente a cláusula é executado e execução salta para o fim do caso (avaliação curto-circuito).
Ou seja ao contrário de if-then e declarações if-then-else, a instrução switch pode ter um número de possíveis caminhos de execução. Um switch funciona com o byte, short, char, e tipos primitivos de dados int. Ele também funciona com tipos enumerados, a classe String, e algumas classes especiais que envolvem certos tipos primitivos: Character, Byte, Short, e Integer.
Exemplo:
Neste simples exemplo podemos ver como mostrar na tela o dia da semana usando um numero de 1 a 7.
Java
public class Caso {
public static void main(String[] args)
{
int dia = 5;
switch (dia)
{
case 1:
System.out.println("Segunda");
break;
case 2:
System.out.println("Terça");
break;
case 3:
System.out.println("Quarta");
break;
case 4:
System.out.println("Quinta");
break;
case 5:
System.out.println("Sexta");
break;
case 6:
System.out.println("Sabado");
break;
default:
System.out.println("Domingo");
break;
}
}
}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication55
{
class Program
{
static void Main(string[] args)
{
int dia = 5;
switch (dia)
{
case 1:
Console.WriteLine("Segunda");
break;
case 2:
Console.WriteLine("Terça");
break;
case 3:
Console.WriteLine("Quarta");
break;
case 4:
Console.WriteLine("Quinta");
break;
case 5:
Console.WriteLine("Sexta");
break;
case 6:
Console.WriteLine("Sabado");
break;
default:
Console.WriteLine("Domingo");
break;
}
Console.ReadKey();
}
}
}
C++
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int dia = 5;
switch (dia)
{
case 1:
cout << "Segunda" << endl;
break;
case 2:
cout << "Terça" << endl;
break;
case 3:
cout << "Quarta" << endl;
break;
case 4:
cout << "Quinta" << endl;
break;
case 5:
cout << "Sexta" << endl;
break;
case 6:
cout << "Sabado" << endl;
break;
default:
cout << "Domingo" << endl;
break;
}
system("pause");
return 0;
}
ABAP
*&---------------------------------------------------------------------*
*& Report ZCASO
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Caso
*&---------------------------------------------------------------------*
REPORT ZCASO.
DATA dia TYPE i.
dia = 5.
CASE dia.
WHEN 1.
WRITE : / 'Segunda'.
WHEN 2.
WRITE : / 'Terça'.
WHEN 3.
WRITE : / 'Quarta'.
WHEN 4.
WRITE : / 'Quinta'.
WHEN 5.
WRITE : / 'Sexta'.
WHEN 6.
WRITE : / 'Sabado'.
WHEN OTHERS.
WRITE : / 'Domingo'.
ENDCASE.

