
if switch (condicional) e ==,! =, <,>, <=, >= (operadores de comparação) &&, || ! (Operadores Booleanos);
Aula de Hoje:
- condicional
- if
- switch
- operadores de comparação
- ==
- !=
- <
- >
- <=
- >=
- Operadores Booleanos
- &&
- ||
- !
Assista a vídeo aula
Artigo
If, o que é usado em conjunção com um operador de comparação, os testes se um determinado estado tenha sido atingido, tal como uma entrada estando acima de um certo número. O formato para um caso de teste é:
if(someVariable > 50) { // Fazer alguma coisa aqui }
Os testes do programa para ver se someVariable é maior do que 50. Se for, o programa toma uma acção específica. Dito de outra forma, se a instrução entre parênteses é verdadeira, os comandos dentro dos colchetes são executados. Se não, o programa salta sobre o código.
Os suportes podem ser omitidos após um caso comunicado. Se isso for feito, a próxima linha (definido pelo ponto e vírgula) torna-se a única declaração condicional.
if(x > 120) digitalWrite (ledPin, HIGH); if(x > 120) digitalWrite (ledPin, HIGH); if(x > 120) {digitalWrite (ledPin, HIGH); } if(x > 120) { digitalWrite (LEDpin1, HIGH); digitalWrite (LEDpin2, HIGH); } // todos estão corretos
As declarações a ser avaliado dentro dos parênteses requerem o uso de um ou mais operadores:
Operadores de comparação:
X == y (x é igual a y) x != Y (x não é igual a y) x < y (x é menor que y) x > y (x é maior que y) X <= Y (x é inferior ou igual a y) x >= y (x é maior do que ou igual a y)
Aviso:
Cuidado com acidentalmente usando o sinal de igual simples (por exemplo, se (x =
10)). O único sinal de igual é o operador de atribuição, e define x a 10 (coloca o valor 10 para a variável x). Em vez disso, usar o sinal de igual duplo (por exemplo, if(x == 10)
), que é o operador de comparação, testes e se x é igual a 10 ou não. Esta última afirmação só é verdadeira se x é igual a 10, mas a declaração anterior será sempre verdade.
Isso ocorre porque C avalia a declaração if(x = 10)
da seguinte forma: 10 é atribuído a x (lembre-se que o sinal de igual simples é o operador de atribuição), então x agora contém 10. Em seguida, o “if” condicional avalia 10, que sempre avaliada como TRUE, uma vez que qualquer número diferente de zero é avaliada como TRUE. Consequentemente, if(x = 10)
será sempre avaliada como TRUE, o que não é o resultado desejado ao usar um ‘if’. Além disso, a variável x será definida como 10, o que também não é uma acção desejado.
Operadores Booleanos
Estes podem ser usados dentro da condição de um caso comunicado.
&& (AND lógico)
Verdadeiro somente se ambos os operandos são verdadeiros, por exemplo,
if(digitalRead (2) == ALTA && digitalRead (3) == HIGH) {// lê dois interruptores // ... }
é verdade apenas se ambas as entradas são elevados.
|| (Lógico ou)
Verdadeiro se o operando é verdade, por exemplo,
if(x> 0 || y> 0) { // ... }
É verdade, se x ou y é maior do que 0.
! (não)
Verdadeiro se o operando é falsa, por exemplo,
if (!x) { // ... }
é verdadeira se x é falsa (ou seja, se x é igual a 0 ou FALSE).
Aviso
Certifique-se de não confundir o operador booleano AND, && (e comercial duplo) para o bit a bit E operador & (e comercial single). Eles são completamente diferentes animais.
Da mesma forma, não confunda o booleano || (tubo duplo) com o operador bit a bit OU operador | (Tubo único).
O bit a bit não ~ (til) se parece muito diferente do que o boolean não! (Ponto de exclamação ou “bang”, como os programadores dizem), mas você ainda precisa ter certeza de qual deles você quer onde.
Exemplos
if(a> = 10 && uma <= 20) {} // se verdadeiro é uma entre 10 e 20
if / else
if / else permite maior controle sobre o fluxo de código do que o básico if comunicado, ao permitir que múltiplos testes a serem agrupados. Por exemplo, uma entrada analógica pode ser testado e uma acção tomada se a entrada foi inferior a 500, e outra acção tomada se a entrada foi de 500 ou maior. O código ficaria assim:
if(pinFiveInput <500) { // Ação A } else { // Ação B }
else pode prosseguir outra if de teste, de modo que os vários testes, mutuamente exclusivos pode ser executado ao mesmo tempo.
Cada teste vai avançar para o próximo até que um verdadeiro teste é encontrado. Quando um teste verdadeiro é encontrado, seu bloco associado de código é executado, e em seguida, o programa salta para a linha seguinte a toda if / else construção. Se nenhum teste prova ser verdadeiro, o padrão else bloco é executado, se um estiver presente, e define o comportamento padrão.
Note-se que uma if bloco pode ser usado com ou sem uma terminação else bloco e vice-versa. Um número ilimitado de tais else if ramos é permitido.
if(pinFiveInput <500) { // Fazer Coisa A } else if (pinFiveInput> = 1000) { // Fazer Coisa B } else { // Fazer Coisa C }
declarações switch / case
Como se declarações, mudar … caso controla o fluxo de programas, permitindo aos programadores especificar código diferente que deve ser executada em várias condições. Em particular, uma instrução switch compara o valor de uma variável para os valores especificados nas declarações de caso. Quando uma instrução case é encontrada cujo valor corresponde ao da variável, o código nesse caso declaração é executado.
O break é palavra-chave sai do switch, e é normalmente usado no final de cada caso. Sem uma instrução break, a instrução switch continuará executando os seguintes expressões ( “-through caindo”) até uma pausa, ou o fim da instrução switch é atingido.
Exemplo
switch (var) { case 1: // fazer alguma coisa quando var for igual a 1 break; case 2: // fazer alguma coisa quando var é igual a 2 break; default: // se nada mais jogos, faça o padrão // default é opcional break; }
Sintaxe
switch ( var ) { case rótulo : // declarações break ; case rótulo : // declarações break ; default : // declarações break ; }
Parâmetros
var: a variável cujo valor para comparar com os vários casos
label: um valor para comparar a variável para
Código da Aula
int var1 = 10; void setup() { //Colocar o seu código de configuração aqui, para executar uma vez: } void loop() { //Colocar o seu código principal aqui, para executar repetidamente: if(var1 > 0) { var1++; } if(var1 < 10) { var1--; } if(var1 == 10) { } if(var1 != 0) { } if(var1 >= 0) { } if(var1 <= 0) { } if(var1 == 0 && var1 == 10) { } if(var1 == 0 || var1 == 10) { } if(!(var1 == 0) || var1 == 10) { } switch(var1) { case 1: return 1 + 1; case 2: return 1 - 1; case 3: return 1 * 1; case 4: return 1 / 1; default: return -1; } }
Fonte: arduino.cc
Faça um comentário