# Please explain { to me.

Yeah, a noob question I know. But I’m having a “logic” problem that I believe revolves around an incomplete understanding of what { and } do in this context. Can you fill me in?

Can you be more specific m8?

My first assumption was that it was used to nest functions. So, {1+2}/3 has a different meaning from {1}+{2/3}

And it appears to be used that way sorta, but not in the way I would expect. When I try to use it the same way I would use it above, sometimes things compile okay, sometimes they don’t.

Understand, I’m in second program so it’s not like I know what the hell I’m doing. But it behaving unexpectedly i.e. not exactly like a () in math. So I was hoping for a general exposition on what it does in the Ard. environment.

I am still not sure of what you mean, but I think, if you havent already done so, you should take a look here:

http://arduino.cc/en/Reference/Braces

The simplest explanation is that the {} brackets group multiple statements into a single statement (that a drastic simplification)

Take if for example

if (condition) statement else statement

that might be if (a == 10) b = 20; else b = 42;

or it might be

if (a == 10)
{
b = 20;
do_something();
}
else
{
b = 42;
do_something_else();
}

http://arduino.cc/en/Reference/Braces for a better description

You are confusing parenthesis () with curly braces {}

Parenthesis are used to enclose values or to define how you want a calculation to be evaluated

1+23 would give the value of 7, not 9 as you might think and that is because the * operator has precedence over the + operator and theerfore the 23 is calculated first.

To make it work to give you a value of 9, you would need to enclose specific sections of the calculation in parenthesis, e.g. (1+2)*3 - This would calculate the 1+2 first (as the parenthesis have precedence over the * and +) to get 3 then 3 gets multiplied by 3 to get 9.

Parenthesis are also used to enclose parameters on functions.

Curly braces are simply there to tell the compiler where a code block starts and ends. E.g.

for (int x; x <10; x++)
{
// do something here
}

Thanks guys. Now that I know they’re called “braces” I can look it up as you all pointed out.