Close

Odpověď na: nahodný výstup z Nextion display

Úvodní stránka Fórum Vaše projekty Arduino nahodný výstup z Nextion display Odpověď na: nahodný výstup z Nextion display

#7934
Zbyšek Voda
Správce

Dobrý den, napadá mě, že by problém mohl být v porovnání:
heslo !=""
Jazyk C++ má totiž řetězce implementované jako objekty – vy používáte objekt String. A u nich je potíž, že nejdou jednoduše porovnávat jako primitivní datové typy. Dojde totiž k porovnání jejich refenrencí a ne jejich hodnot (aspoň myslím).

Takže u

String s1 = "A";
String s2 = "A";

myslím neplatí rovnost s1 == s2.

Vy tedy porovnáváte objekt heslo, který je typu String s prázdným řetězcem „“. Dojde k porovnání referencí (něco jako adresa v paměti). Ty dva se ve vašem případě nikdy rovnat nebudou, tedy bude podmínka heslo !="" vždy true.

K porovnávání hodnot řetězců se používá metody equals – viz https://www.arduino.cc/en/Reference/StringEquals

Tento problém s porovnáváním řetězců tam pak máte několikrát.

Snad to pojede 🙂