Skocz do zawartości

Zagnieżdżanie warunków if w ifie


Superuser1234

Pomocna odpowiedź

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
Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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
Link do komentarza
Share on other sites

@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.

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.