Arduino Syntax problem ('else' without a previous 'if')

  • Thread starter Thread starter helofrind
  • Start date Start date
  • Tags Tags
    Arduino
Click For Summary
The user encountered a syntax error in their Arduino code, specifically an "else without a previous if" message. The issue arose from mistakenly placing a semicolon at the end of the if statement, which effectively terminated it prematurely. Removing the semicolon resolved the error, allowing the code to function correctly. This highlights the importance of syntax accuracy in programming, especially for beginners. The discussion emphasizes learning from small mistakes in coding practices.
helofrind
Messages
23
Reaction score
1
not sure why I am getting a syntax, I am new to programming so trying something simple. Can somone please explain why I am getting this error?

Code:
int LED = 11;                                // on/off battery 2 control
int LEDP = 5;
void setup()
{
 pinMode (LED, OUTPUT);
 pinMode (LEDP, INPUT);
}

void loop()
{
 int light = digitalRead (LEDP);
 if (digitalRead (light) == HIGH);
 {
   digitalWrite (light, HIGH);
 }
 else
 {
   digitalWrite (light, LOW);
 }
}
Arduino: 1.6.12 (Windows 7), Board: "Arduino/Genuino Uno"

C:\Users\User\Documents\LED_controller\LED_controllerIO\LED_controllerIO.ino: In function 'void loop()':

LED_controllerIO:19: error: 'else' without a previous 'if'

else

^

exit status 1
'else' without a previous 'if'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
 
Last edited by a moderator:
Engineering news on Phys.org
helofrind said:
not sure why I am getting a syntax, I am new to programming so trying something simple. Can somone please explain why I am getting this error?

Code:
int LED = 11;                                // on/off battery 2 control
int LEDP = 5;
void setup()
{
 pinMode (LED, OUTPUT);
 pinMode (LEDP, INPUT);
}

void loop()
{
 int light = digitalRead (LEDP);
 if (digitalRead (light) == HIGH);
 {
   digitalWrite (light, HIGH);
 }
 else
 {
   digitalWrite (light, LOW);
 }
}
Arduino: 1.6.12 (Windows 7), Board: "Arduino/Genuino Uno"

C:\Users\User\Documents\LED_controller\LED_controllerIO\LED_controllerIO.ino: In function 'void loop()':

LED_controllerIO:19: error: 'else' without a previous 'if'

else

^

exit status 1
'else' without a previous 'if'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
You have terminated the 'if' statement with a semi-colon...
 
if (digitalRead (light) == HIGH);

Remove the red semicolon.
 
HAHA, thanks, had a feeling it was going to be something stupid. Lesson learned
 
I am trying to understand how transferring electric from the powerplant to my house is more effective using high voltage. The suggested explanation that the current is equal to the power supply divided by the voltage, and hence higher voltage leads to lower current and as a result to a lower power loss on the conductives is very confusing me. I know that the current is determined by the voltage and the resistance, and not by a power capability - which defines a limit to the allowable...

Similar threads

Replies
7
Views
2K
  • · Replies 14 ·
Replies
14
Views
2K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 1 ·
Replies
1
Views
7K
  • · Replies 22 ·
Replies
22
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
3
Views
10K