## Tutorial for those having problems with logical operators

This thread is not a question but rather a snippet of code for those starting Java and coming across logical operators to come to. This will specifically cover the & operator and its short-circuit equivalent &&. The reason I am posting this is for others, who like myself in the past, have difficulty understanding the differences. With practice you too will learn to use these properly. Here is a snippet of code to observe:
```//This program will demonstrate using short circuit operators

public class ShortCirtcuitOps
{
public static void main(String args[])
{
int n, d, q;
n = 10;
d = 2;

//This shows in the console
if(d != 0 && (n % d) == 0) //since d does not equal 0 it then checks to see if the remainder of 10 / 2 is 0
System.out.println(d + " is a factor of " + n + ".");

d = 0;  //d is now set to 0

//Since d is 0 the second operand is not evaluated, this will not show in the console
if(d != 0 && (n % d) == 0) //This keeps there from being a division by 0 since d is 0
System.out.println(d + " is a factor of " + n + ".");

//This will cause a divide by 0 error since both expressions are allowed to be evaluated
//if(d != 0 & (n % d) == 0)
//System.out.println(d + " is a factor of " + n ".");
}

}```
If you take the last if statement out of comments then you will generate a compile error and be unable to run the program. This is why I have left that segment in comments. The difference between '&' and '&&' is that '&' will automatically check both of these before continuing. This causes the divide by zero error at the end of the code. By using '&&' you can stop this error from occurring. As you can see with the second 'if' statement it will check to see if d != 0. Since it does equal 0 it will then skip over the next section of the if statement thus avoiding the divide by zero error. You may also notice that int q has not been defined. I put this here for anyone who wishes to play around with this code to define q when and where they wish in order to create other instances for this code. I hope this has helped anyone searching for more information involving the difference between these.