Operators allow you to manipulate variables in lots of ways. They're in truth the powerhouse of your programming language. There are a whole load, but we're going to focus on just a few. To avoid this series spiralling, you're going to have to research some yourself - which is okay, as most programmers do just that. Looking for operators as they need them.

__Arithmetic operators__You're probably semi-familiar with these already - they're the operators which allow you to do arithmetic!

As a physicist, most of the early software I wrote was about simulating a problem in maths or physics, so using these was a must.

The operators +, -, / are probably familiar as add, minus, divide. Looking a little different from normal maths, * is used for multiplication.

In code, you can set out such mathematical statements as you need.

__Integer maths__

Let's start out by declaring two integers,

**int num1 = 5;**

**int num2 = 3;**

Once declared, we don't have to continuously use "int" anymore. So we can use,

**num1 + num2;**

This will return 8. They're added.

**num1 - num 2;**

This will return 2. They're subtracted.

**num1 / num2;**

Might surprise you. Remember these numbers can only have whole number values. It returns 1, because 3 goes into 5 only once. There is no decimal, and there is no rounding up.

To counter this, there is the % operator which is the modulus. This is "the remainder" if you remember back to maths at high school.

**num1 % num2;**

Returns 2. Once you divide 5 by 3, you have 2 left over.

**num1 * num2;**

Returns 15. Multiplied.

**num1 / 2;**

Returns 4. This is a reminder that you don't always have to use variables - whether using int, double or String. You can use fixed values (sometimes called literals) if you want.

__Double maths__

This is the maths of decimal numbers.

**double num3 = 5;**

**double num4 = 3**

**num3 + num4;**

This will return 8.0. They're added.

**num3 - num 4;**

This will return 2.0. They're subtracted.

**num3 / num4**;

Will return 1.666666667. Decimal points!

**num3 * num4;**

Returns 15. Multiplied

__Mixing data types__

If you try mixing ints with doubles in an operation, weird things happen. You can override this by using a cast function. If you put

- (int) before a double number, it treats it as an integer
- (double) before an int number, it treats it as a double

So ...

**(int) num3 / num2;**

Returns 1.

**(double) num1 / num3;**

Returns 1.66666667.

__Mixed arithmetic__

Hopefully you've seen this before somewhere. But if you have a long calculation such as ...

**7 - 2 * 3;**

What's the answer? Computers apply multiplication and division before they apply addition and subtraction.

We tend to process from right to left so would expect an answer of 15.

A computer sees it as...

2 * 3 = 6

7 - 6 = 1

And answers 1.

You can use brackets to set orders. Things inside brackets are processed before things outside. So

**(7 - 2) * 3;**

Is 15. If this shocks you, you need to look this up.

__Strings__

Arithmetic doesn't seem to make much sense in terms of strings. However the + operator joins together (sometimes called concatonate) two Strings to make return a longer string made of both parts.

**String str1 = "Hello ";**

**String str2 = "World";**

**String str3;**

**str3 = str1 + str2;**

Returns "Hello World".

__Assignment operators__Another key part of this, is assignment operators. We've used them before for initialisation - we use the name of a variable, the = sign and a value. The = operator sets the variable to the value we provided.

So if we've declared

int answer;

Then if we do,

**answer = 2 * 3;**

It returns 6.

If we do the following,

**answer = answer + 2;**

It will increase the value of answer by 2 ... so now 8. But we could also do ...

**answer += 2;**

Whereas,

**answer -= 2;**

Will decrease the value of answer by 2.

All these will work for double numbers too.

Finally,

**answer++;**

Is a method used for increasing an integer by 1. You can use,

**answer--;**

To reduce it by one.

__See operators in action__I have an example on Github filled with operator actions for you to see at first hand. Find the code here.

__Extension material__Look for other types of basic operators here.

## No comments:

## Post a Comment