Diskuze: Jak C# vlastně počíá čísla zadaná v kódu

C# .NET .NET (C# a Visual Basic) Jak C# vlastně počíá čísla zadaná v kódu American English version English version

Avatar
O.S.DV.F
Člen
Avatar
O.S.DV.F:

Mám program (.NET 5), ve kterém potřebuji v kódu napsat:

ikona.Location = new Point(nějakýPanel.Controls.Count+41 * 60, 0);

A jenom by mě zalímalo jak se to vlastně vypočítá (jestli se vezme v úvahu přednost násobení před sčítáním) - napadlo mě to, protože C# je moderní jazyk a myslím, že lidi od Microsoftu by si na té přednosti klidně dali práci.
Samozřejmě můžu napsat pro jistotu:

ikona.Location = new Point( (nějakýPanel.Controls.Count+41) * 60, 0);

Ale myslím že by odpověď pomohla i jiným lidem.

Odpovědět 10.7.2015 12:05
Jo! Zkompilovalo se to!
Avatar
O.S.DV.F
Člen
Avatar
O.S.DV.F:

Teď jsem zjistil, že aby to fungovalo, musí být:

ikona.Location = new Point( ( (nějakýPanel.Controls.Count*60)+(nějakýPanel.Controls.Count*2)+39, 0);
Editováno 10.7.2015 12:22
Nahoru Odpovědět 10.7.2015 12:20
Jo! Zkompilovalo se to!
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na O.S.DV.F
patrik.valkovic:

Logickky. Proč by měl proboha programovací jazyk mít jiné priority než matematika? To je blbost.
https://msdn.microsoft.com/…s.71%29.aspx
Na hoře jsou operátory s nejvyšší prioritou, dole poté s nejnižší. Operátor s vyšší prioritou se provede před operátorem s nižší.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 10.7.2015 12:38
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
MrPabloz
Člen
Avatar
Odpovídá na O.S.DV.F
MrPabloz:

Pokud si např. v kódu napíšeš

int count = 3 + 5 * 5;

a necháš si to vypsat, vyjde ti 28, což znamená že násobení je přednější, tudíž pokud chceš první sečíst a pak teprv násobit, ano musíš to dát do závorek. :)

Nahoru Odpovědět 10.7.2015 12:42
Harmonie těla a duše, to je to, oč se snažím! :)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.