# 9) Operators

**Java Operators**

**Operator** is a special symbol that tells the compiler to perform specific mathematical or logical Operation. We can divide all the Java operators into the following groups:

* Arithmetic Operators
* Relational Operators
* Logical Operators
* Assignment Operators
* Ternary or Conditional Operators&#x20;

**Arithmetic Operators**

Given table shows the entire Arithmetic operator supported by Java Language. Let's suppose variable A hold 8 and B hold 3.

| **Operator** | **Example (int A=8, B=3)** | **Result** |
| ------------ | -------------------------- | ---------- |
| +            | A+B                        | 11         |
| -            | A-B                        | 5          |
| \*           | A\*B                       | 24         |
| /            | A/B                        | 2          |
| %            | A%8                        | 0          |

**Relational Operators**

Which can be used to check the Condition, it always returns true or false. Let’s suppose variable A hold 8 and B hold 3.

| Operators | Example (int A=8, B=3) | Result |
| --------- | ---------------------- | ------ |
| <         | A\<B                   | False  |
| <=        | A<=B                   | True   |
| >         | A>B                    | True   |
| >=        | A>=B                   | False  |
| ==        | A==B                   | False  |
| !=        | A!=B                   | True   |

**Logical Operator**

Which can be used to combine more than one Condition?  Suppose you want to combined two conditions A\<B and B>C, then you need to use Logical Operator like (A\<B) && (B>C). Here && is Logical Operator.

| **Operator** | **Example (int A=8, B=3, C=-10)** | **Result** |
| ------------ | --------------------------------- | ---------- |
| &&           | (A\<B) &&(B>C)                    | False      |
| \|\|         | (B!=-C) \|\| (A==B)               | True       |
| !            | !(B<=-A)                          | True       |

**Truth table of Logical Operator**

| **C1** | **C2** | **C1 && C2** | **C1\|\| C2** | **!C1** | **!C2** |
| ------ | ------ | ------------ | ------------- | ------- | ------- |
| T      | T      | T            | T             | F       | F       |
| T      | F      | F            | T             | F       | T       |
| F      | T      | F            | T             | T       | F       |
| F      | F      | F            | F             | T       | T       |

**Assignment operators**

This can be used to assign a value to a variable. Lets suppose variable A hold 8 and B hold 3.

| Operator | Example (int A=8, B=3) | Result                           |
| -------- | ---------------------- | -------------------------------- |
| +=       | A+=B or A=A+B          | 11                               |
| -=       | A-=3 or A=A-3          | 5                                |
| \*=      | A\*=7 or A=A\*7        | 56                               |
| /=       | A/=B or A=A/B          | 2                                |
| %=       | A%=5 or A=A%5          | 3                                |
| =        | A=B                    | Value of B will be assigned to A |

**Ternary operator**

If any operator is used on three operands or variable is known as ternary operator. It can be represented with " ?: "

**Syntax**

**result** = **testCondition** ? **value1** : **value2**

this statement can be read as “If testCondition is true, assign the value of value1 to result; otherwise, assign the value of value2 to result.

**Example:**

```java
 int a=6,b=7;
 int minVal = (a < b) ? a : b;
 System.out.println(minVal);
```

&#x20;Output: 6
