Sobes.tech
Middle+

Fale sobre a construção SwitchKeys.

sobes.tech IA

Resposta da IA

A construção switch, ou case em algumas linguagens, é uma forma de selecionar um dos vários caminhos alternativos de execução do código com base no valor de uma variável ou expressão. É uma alternativa aos múltiplos blocos if-else if.

Componentes principais:

  • Expressão/Variável: Valor que será comparado com cada case.
  • case: Cada case representa um valor específico com o qual a expressão é comparada. Se o valor corresponder, o código dentro desse case é executado.
  • break: Palavra-chave usada para sair do bloco switch após executar o case correspondente. Se faltar break, a execução continua no próximo case (queda através).
  • default: Bloco opcional que é executado se nenhum dos case corresponder ao valor da expressão.

Exemplo em Java:

// Definição da variável
int dayOfWeek = 3;

// Uso da estrutura switch
switch (dayOfWeek) {
    case 1:
        System.out.println("Segunda-feira");
        break;
    case 2:
        System.out.println("Terça-feira");
        break;
    case 3:
        System.out.println("Quarta-feira");
        break;
    case 4:
        System.out.println("Quinta-feira");
        break;
    case 5:
        System.out.println("Sexta-feira");
        break;
    case 6:
        System.out.println("Sábado");
        break;
    case 7:
        System.out.println("Domingo");
        break;
    default:
        System.out.println("Dia incorreto");
}

Exemplo em Python (com comportamento semelhante conseguido com dicionários):

# Definição da variável
day_of_week = 3

# Criação de um dicionário para imitar switch
day_mapping = {
    1: "Segunda-feira",
    2: "Terça-feira",
    3: "Quarta-feira",
    4: "Quinta-feira",
    5: "Sexta-feira",
    6: "Sábado",
    7: "Domingo",
}

# Obtenção do valor do dicionário usando get com valor padrão
print(day_mapping.get(day_of_week, "Dia incorreto"))

Vantagens do switch em relação a múltiplos if-else if:

  • Legibilidade: Geralmente mais claro quando há muitas opções.
  • Desempenho: Em algumas linguagens, o compilador pode otimizar o switch para uma execução mais rápida (por exemplo, usando tabelas de saltos).

Desvantagens:

  • Limitação nos tipos de dados que podem ser usados em case (depende da linguagem).
  • Não é possível usar intervalos ou condições complexas em case.

No QA e QA Automation, switch pode ser usado para lidar com diferentes estados, resultados de testes, tipos de dados ou elementos de interface do usuário.