Operators
About
Flowgorithm expressions allow the operators used in two major families of
programming languages. The "BASICfamily" contains English keywords and
operators. The "Cfamily"
(which includes C, Java, C#) is far more symbolic.
Since both families are supported, there are redundant
operators. Either the "C Family" or "Basic Family" can be used.
This allows the student to use the operators that match the language they
plan to to learn later.
Operator 
C Family 
BASIC Family 
Negation 
! 
not 
Modulo 
% 
mod 
Equality 
== 
= 
Inequality 
!= 
<> 
Logical And 
&& 
and 
Logical Or 
 
or 
Flowgorithm also adds a few unique Visual Basic operators since if they have helpful,
clearly defined, semantics
Visual Basic Operator 
Name 
& 
String Concatenation 
^ 
Exponent 
In Java and C#, the "+" operator is used for both string concatenation
and addition. This can be quite confusing given the rather complex
semantics. In Flowgorithm, addition will only work with numbers. The ampersand "&" is used for concatenation.
Also, C# and Java lack an exponent operator  instead relying their
respective Math classes. Flowgorithm uses the Visual Basic "^".
Precedence
The following are the precedence levels from high (evaluated first) to
low.
Level 
Name 
Operators 
Notes 
8 
Unary 
 ! not 
In Visual Basic, "not" precedence level is far
lower  above "and", but below all relational operators. 
7 
Exponent 
^ 
The exponent operator does not exist in C#
or Java. 
6 
Multiply 
* /
% mod 
Division will always be highprecision
(floating point) 
5 
Addition 
+  
"+" will only work with numbers. 
4 
Concatenate 
& 
C# and Java use the ambiguous "+" operator for
addition and concatenation. 
3 
Relational 
> >= < <=
== = != <> 

2 
Logical And 
and && 

1 
Logical Or 
or  

Examples
Expression 
Result 
Notes 
1 + 3 ^ 2 
10 

10 * 2 + 5 * 6

50 
10 * 2 and 5 * 6 have higher precedence
than addition. The addition is done last. 
7 * (4  1)

21 
Parenthesis are used for subexpressions,
which are evaluated as a whole. 
6 / 3 * 2 
4 
In mathematics, multiplication and
division have the same precedence levels. So, they are evaluated
lefttoright. The "PEMDAS" acronym, used in highschool, is a tad
misleading. 
10 mod 3 
1 
Modulo math gives the remainder from
division 
10 % 3 
1 
Same expression, but using the CFamily
operator 
