help me pls? "expected constructor, destructor, or type conversion before ';' "

i keep hitting bugs in my program i think ive not understood how the different routines work, i realise theres probably a really simple fix but im completely lost i would be eternally gratefull for any help anyone can give? (program copied below)
many thanks xx :grinning:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

#define CONV_FACTOR 0.00812

const int analogPina = A1;
const int analogPin0 = A0;
const int buzzerpin = 7;
int geiger_input =2;
long count = 0;
long countPerMinute = 0;
long timePrevious = 0;
long timePreviousMeasure = 0;;
long time = 0;
long countPrevious = 0;
float radiationValue = 0.0;


void setup() {
  lcd.init();
  lcd.backlight();
  lcd.begin(16,2);
  lcd.print("Personal Pip Boy");
  lcd.setCursor(2,1);
  lcd.print("MK.III V2.0.0");
  delay(10000);
  lcd.clear();
pinMode (LED_BUILTIN, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2) , countPulse, RISING);

Serial.begin(9600);
                    
  digitalWrite (buzzerpin, HIGH);
   delay (1000);
   digitalWrite (buzzerpin, LOW);
}
void loop ();
  ShowCMPandSv ();
  delay (100);
}

void countPulse (){
  digitalWrite (LED_BUILTIN, HIGH);
  delay(100);
  digitalWrite (LED_BUILTIN,LOW);
  count++;
}


void sensorList()
{
  lcd.init();  // initialize the lcd 
  Serial.begin(9600);
  lcd.begin(16,2);
   int analogValue = analogRead (analogPina);
   int analogValueb = analogRead (analogPin0);
   lcd.backlight();
  lcd.clear(); 
  lcd.print ("Infrared:");
  lcd.setCursor(2,1);
  lcd.print(analogValueb);
  delay (1500);
  lcd.clear ();
  lcd.print ("Temp:");
  lcd.setCursor(2,1);
  lcd.print(analogValue);
  delay(1500);
  ShowCPMandSv ();
}



void ShowCPMandSv () 
{
  if (millis()-timePreviousMeasure > 10000) {
    float elapsedmillis = millis ();
    int elapsedSec = round ((elapsedmillis)/1000);
    countPerMinute = 6*count;
    radiationValue = countPerMinute * CONV_FACTOR;
    timePreviousMeasure = millis();
    Serial.print ("CPM = ");
    Serial.print (countPerMinute,DEC);
    Serial.print (" - ");
    Serial.print ("uSv/h = ");
    Serial.println (radiationValue,4);
    lcd.init();
    lcd.clear();
    lcd.setCursor (0, 0);
    lcd.print ("CMP = ");
    lcd.setCursor (6,0);
    lcd.print (countPerMinute);
    lcd.setCursor (0,1);
    lcd.print (radiationValue,4);
    lcd.setCursor (6,1);
    lcd.print(" uSv/h");
    count = 0;
    delay (3000);
    sensorList ();
    
  }
}

Where does your loop() function start and end?

Check that your braces { } balance.

(deleted)

(deleted)

i fixed that my bug window now reads "Arduino: 1.8.13 (Windows Store 1.8.39.0) (Windows 10), Board: "Arduino Uno"

\Documents\Arduino\PIP_BOY_MKii_V1.1.2\PIP_BOY_MKii_V1.1.3\PIP_BOY_MKii_V1.1.3.ino: In function 'void loop()':

PIP_BOY_MKii_V1.1.3:42:3: error: 'ShowCMPandSv' was not declared in this scope

ShowCMPandSv ();

^~~~~~~~~~~~

\Documents\Arduino\PIP_BOY_MKii_V1.1.2\PIP_BOY_MKii_V1.1.3\PIP_BOY_MKii_V1.1.3.ino:42:3: note: suggested alternative: 'ShowCPMandSv'

ShowCMPandSv ();

^~~~~~~~~~~~

ShowCPMandSv

exit status 1

'ShowCMPandSv' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

OK, where is that function declared?

im really sorry i know im really new to this... im not entirely sure how to declare it in this situation, i was merging someone else code and intergrating it into something i had already written, im sorry i realise this is a rookie error but im really lost :confused:

void loop ();

Does the start of the loop() function look like this in any of the examples ?

sorted it all thanks guys!! :sunglasses: