van if statement naar een switch case
5 berichten
• Pagina 1 van 1
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
van if statement naar een switch case
Hoi allemaal,
Vraagje,
Hoe kan ik onderstaande if statement (zijn er in totaal 5) op een goede manier omzetten naar een switch case.
Overal is de zelfde opbouw, alleen wordt er gekeken naar een ander input qua waarde (passwordLvl 1 t/m 5)
cpp code
Vraagje,
Hoe kan ik onderstaande if statement (zijn er in totaal 5) op een goede manier omzetten naar een switch case.
Overal is de zelfde opbouw, alleen wordt er gekeken naar een ander input qua waarde (passwordLvl 1 t/m 5)
cpp code
void checkPassword() {
if (level == "1") {
if (userinput == passwordLvl1){
Serial.println(" OK.");
digitalWrite(24, HIGH);
digitalWrite(27, HIGH);
level = "2";
delay(250);
digitalWrite(24, LOW);
digitalWrite(27, LOW);
} else {
Serial.println(" Wrong passwowrd!");
digitalWrite(22, HIGH);
digitalWrite(25, HIGH);
delay(250);
digitalWrite(22, LOW);
digitalWrite(25, LOW);
}
resetPassword();
}
if (level == "2") {
if (userinput == passwordLvl2){
Serial.println(" OK.");
digitalWrite(24, HIGH);
digitalWrite(27, HIGH);
level = "3";
delay(250);
digitalWrite(24, LOW);
digitalWrite(27, LOW);
} else {
Serial.println(" Wrong passwowrd!");
digitalWrite(22, HIGH);
digitalWrite(25, HIGH);
delay(250);
digitalWrite(22, LOW);
digitalWrite(25, LOW);
}
resetPassword();
}
if (level == "3") {
if (userinput == passwordLvl3){
Serial.println(" OK.");
digitalWrite(24, HIGH);
digitalWrite(27, HIGH);
level = "4";
delay(250);
digitalWrite(24, LOW);
digitalWrite(27, LOW);
} else {
Serial.println(" Wrong passwowrd!");
digitalWrite(22, HIGH);
digitalWrite(25, HIGH);
delay(250);
digitalWrite(22, LOW);
digitalWrite(25, LOW);
}
resetPassword();
}
if (level == "4") {
if (userinput == passwordLvl4){
Serial.println(" OK.");
digitalWrite(24, HIGH);
digitalWrite(27, HIGH);
level = "5";
delay(250);
digitalWrite(24, LOW);
digitalWrite(27, LOW);
} else {
Serial.println(" Wrong passwowrd!");
digitalWrite(22, HIGH);
digitalWrite(25, HIGH);
delay(250);
digitalWrite(22, LOW);
digitalWrite(25, LOW);
}
resetPassword();
}
if (level == "5") {
if (userinput == passwordLvl5){
Serial.println(" OK.");
digitalWrite(24, HIGH);
digitalWrite(27, HIGH);
T.PauseTimer();
level = "END!";
gameEnd();
delay(250);
digitalWrite(24, LOW);
digitalWrite(27, LOW);
loopEnd = false;
} else {
Serial.println(" Wrong passwowrd!");
digitalWrite(22, HIGH);
digitalWrite(25, HIGH);
delay(250);
digitalWrite(22, LOW);
digitalWrite(25, LOW);
}
//resetPassword();
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: van if statement naar een switch case
Als ik je code goed begrijp, begin ik bij level 1 en als ik dit goed heb gedaan dan ga ik door met level=2. Echter daar mijn user input op level1 is gebaseerd wordt hij nu bij level2 afgekeurd. Klopt dat?
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
Re: van if statement naar een switch case
Hij controleerd de ingevoerde code op de keypad, dit is constant een andere 6 cijferige code (maar wel als een String aangegeven in de code, dus deze code wisselt niet per spel).
Zodra je na invoer van de code op # drukt wordt de code gevalideerd. Hij kan maar op 1 van de 5 levels correct zijn.
Zodra je na invoer van de code op # drukt wordt de code gevalideerd. Hij kan maar op 1 van de 5 levels correct zijn.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: van if statement naar een switch case
Dus mijn redenering klopt? Omdat als je bij level1 begint en pw is juist dan krijg je level2. En die test zit er direct achteraan.
Re: van if statement naar een switch case
switch level dan moet level wel een integer zijn. maar dat is geen probleem door level=integer (levelstring) te doen.
case 1
....
break
case 2
....
in die cases kan dan
staan if (userinput== passwordlvl[level]){passoke}else{passfalse}
void passoke{ Serial.println(" OK.");
digitalWrite(24, HIGH);
digitalWrite(27, HIGH);
level = "5";
delay(250);
digitalWrite(24, LOW);
digitalWrite(27, LOW); }
void passfalse {de else code }
case 1
....
break
case 2
....
in die cases kan dan
staan if (userinput== passwordlvl[level]){passoke}else{passfalse}
void passoke{ Serial.println(" OK.");
digitalWrite(24, HIGH);
digitalWrite(27, HIGH);
level = "5";
delay(250);
digitalWrite(24, LOW);
digitalWrite(27, LOW); }
void passfalse {de else code }
paul deelen
shooter@home.nl
shooter@home.nl
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 25 gasten