Diskuze: Vysvětlení C# Kódu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Však už to tam máš vysvětlené v komentářích. Jde o to že si nahraješ do proměné text, který potom v cyklu projedeš. Začínáš odzadu a jedeš ke předu a tím pádem si vždy přidáš do další proměné písmeno ze zadu.
// slovo = auto
// písmena jsou a,u,t,o
for (int i = palindrom.Length - 1; i >= 0; i--)
{
pozpatku += palindrom[i];
}
//nakonci budeš mít slovo "otua"
Nakonci se porovná palindrom s tím pozpátku a to je vše.
Pokud tedy víš že
string slovo = "auto";
string tretiPismeno = slovo[2];
Už to v podstatě chápu... Jen mi nejde do mysli, proč se od palindrom.Length odčítá jednička...?
Psal ti....pokud to dobře chápu, že jedeš od zadu "AUTO" == OTUA to znamena -1 a kdyby si to chtel projet od predu tak +1.... Nebo ne?
Představ si:
string slovo = "auto";
Délka tohoto stringu: 4 prvky
Ovšem, pokud si string předsavíme jako pole, tak víme, že se čísluje od
0. Tzn. že ve stringu to vypadá nějak takhle:
index: 0 - písmeno: a
index: 1 - písmeno: u
index: 2 - písmeno: t
index: 3 - písmeno: o
Kdyby tam ta -1 nebyla, tak by jsi přetekl
Díky moc kluci, už to chápu.
Nene, Ta -1 je tam jen kvůli tomu aby nevznikl overflow error. Jinak jestli pojedeš v cyklu dopředu v poli nebo dozadu se řeší pouze takto.
// Od předu
for (int i = 0; i <= palindrom.Length -1; i++)
// Od zadu
for (int i = palindrom.Length - 1; i >= 0; i--)
Ta -1 je tam hlavně protože délka stringu se počítá absolutně takže 4 znaky jsou prostě 4 znaky, ale poslední index pole z něj je 3 protože [0,1,2,3].
Jinak pokud by jsi pracoval s polem jako takovým tak v některých případech stačí jen upravit podmínku v cyklu a vynechat tu -1.
Zobrazeno 9 zpráv z 9.