# Erro na estrutura if - else

**URL:** <https://forum.fazedores.com/t/erro-na-estrutura-if-else/7766>\
**Category:** Arduino\
**Created:** [Novembro 1, 2020, 3:51pm UTC](https://forum.fazedores.com/t/erro-na-estrutura-if-else/7766 "2020-11-01T15:51:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Guilherm.Willemen](https://avatars.discourse-cdn.com/v4/letter/g/ecae2f/32.png) [@Guilherm.Willemen](https://forum.fazedores.com/u/Guilherm.Willemen)\
**Post date:** [Novembro 1, 2020, 3:51pm UTC](https://forum.fazedores.com/t/erro-na-estrutura-if-else/7766/1 "2020-11-01T15:51:04Z")

</div>

Olá, amigos. Segue código que usei de um livro:  
const int POT = 0;  
const int RLED=11;  
const int GLED=10;  
const int YLED=9;  
int val=0;

void setup()  
{  
pinMode(RLED, OUTPUT);  
pinMode(GLED, OUTPUT);  
pinMode(YLED, OUTPUT);  
}  
void loop()  
{  
val = analogRead(POT);  
if(val \< 341);  
{  
digitalWrite(RLED, HIGH);  
digitalWrite(GLED, LOW);  
digitalWrite(YLED, LOW);  
}  
else if (val \> 682);  
{  
digitalWrite(RLED, LOW);  
digitalWrite(GLED, LOW);  
digitalWrite(YLED, HIGH);  
}  
else; _**(LINHA COM PROBLEMA)**_  
{  
digitalWrite(RLED, LOW);  
digitalWrite(GLED, HIGH);  
digitalWrite(YLED, LOW);  
}  
}

Como está destacado acima, nessa linha aparece o problema descrito pelo próprio arduino como " ‘else’ sem um ‘if’ prévio." Mas esse código está como o do livro. O que quero fazer aqui é controlar 3 leds com um potenciômetro de 10k de maneira que abaixo de um determinado valor analógico de 341 bits acenda o led vermelho, acima do valor 682 acenda o led amarelo e fora disso, ‘else’ acenda o led verde. Poderiam me ajudar a entender qual o problema desse código?

---

<div class="post-metadata">

**Author:** ![sksdutra](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/sksdutra/32/442_2.png) [@sksdutra](https://forum.fazedores.com/u/sksdutra)\
**Post date:** [Novembro 2, 2020, 4:19pm UTC](https://forum.fazedores.com/t/erro-na-estrutura-if-else/7766/2 "2020-11-02T16:19:24Z")

</div>

Fiz pequenos ajustes no código, copia e cola e vê se funciona.

```auto
const int POT = 0;
const int RLED=11;
const int GLED=10;
const int YLED=9;
int val=0;

void setup() {
	pinMode(RLED, OUTPUT);
	pinMode(GLED, OUTPUT);
	pinMode(YLED, OUTPUT);
}

void loop() {
	val = analogRead(POT);
    
	if(val < 341) {
		digitalWrite(RLED, HIGH);
		digitalWrite(GLED, LOW);
		digitalWrite(YLED, LOW);
	} else if (val > 682) {
		digitalWrite(RLED, LOW);
		digitalWrite(GLED, LOW);
		digitalWrite(YLED, HIGH);
	} else {
		digitalWrite(RLED, LOW);
		digitalWrite(GLED, HIGH);
		digitalWrite(YLED, LOW);
	}
}

```

---

<div class="post-metadata">

**Author:** ![WagnerB](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/wagnerb/32/1911_2.png) [@WagnerB](https://forum.fazedores.com/u/WagnerB)\
**Post date:** [Novembro 2, 2020, 8:26pm UTC](https://forum.fazedores.com/t/erro-na-estrutura-if-else/7766/3 "2020-11-02T20:26:33Z")

</div>

@Guilherm.Willemen esse erro é bem simples. Erro de sintaxe.

Observa como você terminou o primeiro ‘if’, com um ‘;’

Mas o IF conta com uma sentença de verificação e o código de tratamento dessa sentença vem entre ‘{ }’

Você indicou para o pré-processador do compilador que o comando ‘if’ terminou no ‘;’

O correto seria:

if (sentença de verficação) {  
…  
}  
else {  
…  
}

Não tem o ‘;’ fechando a linha do código

> **[if - Arduino Reference](https://www.arduino.cc/reference/en/language/structure/control-structure/if/)**

Abraços.

---

<div class="post-metadata">

**Author:** ![sksdutra](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/sksdutra/32/442_2.png) [@sksdutra](https://forum.fazedores.com/u/sksdutra)\
**Post date:** [Novembro 16, 2020, 12:38am UTC](https://forum.fazedores.com/t/erro-na-estrutura-if-else/7766/4 "2020-11-16T00:38:12Z")

</div>

Nem percebi, só organizei o que ele tinha feito, falta de tempo.
