Preciso comparar uma String com vários valores, é possível utilizar  switch case ?

Algo simples assim:

String variavel;

variavel= "AUSENTE"

switch( variavel )

{

      case "PRESENTE":

      // execute 

      break

      case "AUSENTE":

      // execute

      break

      case "AFASTADO"

      // execute

      break

      default:

      // execute

}

Tento executar mais da erro, o Arduino pede um valor inteiro no "switch" para efetuar a comparação

 

Exibições: 6121

Responder esta

Respostas a este tópico

ao usar switch vc precisará declarar a variável como sendo INT ou CHAR. 

STRING não é aceito

xiiii então para eu comparar uma string como no exemplo acima terei q usar "if...else"?

por que não?

Sei lá, parece q com "switch" seria mais fácil, mas beleza, vai com "if...else" mesmo sem problemas.

É q estou iniciando no Arduino agora e estou testando as possibilidades "mais práticas" para implementar meu código.

char

Description

A data type that takes up 1 byte of memory that stores a character value. Character literals are written in single quotes, like this: 'A' (for multiple characters - strings - use double quotes: "ABC").

Como veem da para usar String...

poderia então nos dar um exemplo de sketch que use switch case com uma variável definida como string?

Um switch case pode usar um ENUM, ok, não e uma string, é um inteiro disfarçado, mas podes usar qq coisa do genero...


enum Color { UNDEF, RED, ORANGE, YELLOW, GREEN,  BLUE, PURPLE };

void setup()
{
 Color clr = RED;
 
 switch (clr)
 {
   case UNDEF: break;
   case RED: clr = BLUE; break;
   case BLUE: clr = YELLOW; break;    
   // etc
   default: break;
 }
}

void loop()
{
}

 

como vai o projeto com a antena uhf?

Estou empolgado como projeto, já comprei a Antena UHF RFID as TAGs e o Shield RS232/485, como a Antena e as TAGs comprei da China deve demorar um pouco pra chegar, enquanto isso estou a implementar o código.

Como no condomínio em que moro são 140 casas terei que usar um modo de armazenamento externo para guardar as IDs da etiquetas TAGs, estou começando a testar usando um SD Card com cartão de memória onde penso em gravar o arquivo com as IDs válidas para liberar a entrada.

Vou começar esta semana a quebrar a cabeça com o módulo SD, mas pelo que eu vi parece ser bem tranquilo.

Boa tarde pessoal sou novo aki no blog e postei uma imagem da parte do codigo que estou usando para comparar duas String. Uma string vem da leitura do RFID e a outra eu atribuo um valor, porem não funciona.

Na imagem o primeiro codigo é a ID unica do cartão o segundo é i ID do setor e esse é lido pelo RFID e o ultimo é o ID dentro da String os dois são iguais mas não funciona.

Se alguem puder me ajudar!!!!

Anexos

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço