Skocz do zawartości

Zagnieżdżanie warunków if w ifie


Gość Superuser1234

Pomocna odpowiedź

Gość Superuser1234

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

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

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

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

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

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.