Skocz do zawartości

Zagnieżdżanie warunków if w ifie


Pomocna odpowiedź

Gość Superuser1234
Napisano (edytowany)

Cześć, od razu chcę zaznaczyć że jestem dopiero początkującym i pisze dopiero swoje pierwsze programy w arduino więc może się to wydawać głupie, choć niewiem. Chodzi o to czy da się w jakiś sposób zrobić takie coś:

If coś tam {

If coś tam {

Jakaś rzecz

}

}

Celem tego jest to aby dopiero po spełnieniu kilku warunków coś się zadziało

Edytowano przez Gieneq
Gość Superuser1234

Dziękuję @StefanekP za odpowiedź, pewnie to ja coś źle robię dlatego proszę o poprawienie mnie i wyjaśnienie co zrobiłem źle, nie działa mi następujący kawałek programu:

if (keyCode == 0x21 && keyCode == 0x1B){
  TV.clear_screen();
  }

Ten kawałek kodu miał po naciśnięciu na klawiaturze ze złączem ps2 klawiszy "c" oraz "s" wyczyścić ekran na monitorze telewizora

(edytowany)

Pomyśl chwilę. Czy da się tym samym pociągiem jechać z Warszawy jednocześnie do Gdańska i Zakopanego?

Jeśli keyCode jest równe 0x21 to jest niezmiernie mało prawdopodobne, aby równało się również 0x1b.

 

Edytowano przez ethanak
(edytowany)

A jakiego typu jest keyCode? I w takich sytuacjach najlepszym przyjacielem jest Serial.print/ln...😉 On Ci prawde zawsze powie...

A no tak...jak wyzej wspomniano tak nie zadziala, bo w jednej zmiennej nie przechowasz dwoch wartosci.

 

Edytowano przez farmaceuta

@ethanak nie gniewaj się, ale zamiast dokuczać innym, chyba musisz się trochę douczyć. Jak najbardziej wcześniej napisany warunek może być spełniony - wystarczy zdefiniować operator== żeby zwracał true dla 7 oraz 11.

(edytowany)

Oj tam aj tam - w Iconie bym to napisał bez redeklaracji operatorów 🙂

if !x = 7 and !x =11 then...

(nie wnikam w to czym jest x)

Edytowano przez ethanak

Nie kombinuj - nie miałeś racji i jeszcze próbowałeś dokuczać koledze @farmaceuta. Nikt nie jest nieomylny, więc warto chociaż być miłym 🙂

A co do C++ to na szybko napisałem taki kod testowy:

#include <iostream>
 
 class Silly {
     public:
         Silly(int x) : m_x(x) {};
 
         bool operator==(int y) { return y == 7 || y == 11; }
 
         int m_x;
 };
 
 int main()
 {
     Silly x = 1;
 
     if (x == 7 && x == 11)
         std::cout << "Warunek spełniony!" << std::endl;
     else
         std::cout << "Próbuj ponownie" << std::endl;
 }

Sensu w nim mało, ale jak najbardziej x==7 && x==11 jest prawdą.

  • Lubię! 2
(edytowany)

A Ty też mi nie dokuczaj - w wolnej chwili podstaw coś fajnego pod x żeby mój kod w Iconie zadziałał 🙂

BTW gdyby nie wiedział, że @farmaceuta się nie obrazi to nigdy bym czegoś takiego nie napisał.

Edytowano przez ethanak

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...