Pouze tento týden sleva až 80 % na e-learning týkající se Javy

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

Aktivity (5)
Avatar
Hello World
Člen
Avatar
Hello World:10.7.2015 12:05

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
Hello World
Člen
Avatar
Hello World:10.7.2015 12:20

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!
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Hello World
Patrik Valkovič:10.7.2015 12:38

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 Hello World
MrPabloz:10.7.2015 12:42

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.