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.