Conditionals

Requirements:
Linux Distribution
g++
any text editor

My Setup:
Debian 10
g++ version 6.3.0
pluma

Welcome back to another tutorial on C++! Today we will be going over conditional statements, such as if/else if/else statements, as well as switches and ternary statements. Conditional statements are used to determine what is executed next. If a certain block of code needs to execute if a variable is a specific value, then when the program runs, if the variable is the value, then it runs. In essence, it is used to control the flow of logic within the program. The first one we will look at is the if , if/else , if/else if/else statements:



/************************************************************************
if example
************************************************************************/

int x = 5;

if(x < 10){
  //execute this code if x is less than 10
}

//more code here

/***********************************************************************
if else example
***********************************************************************/

int x = 5;

if(x < 10){
  //execute this code if x is less than 10
}else {
  //execute this code if x is not less than 10
}

//more code here

/***********************************************************************
if/else if/else example
***********************************************************************/

int x = 5;

if(x < 10){
  //execute this code if x is less than 10
}else if(x > 10){
  //execute this code if x is greater than 10
}else{
  //execute this code of neither of those are correct.
}

//more code here


These are pretty straight forward. If the condition is checked to be true, then the program will run through that block of code. You can have as many else if’s as you need, however I recommend looking at what you need to do and determining if if/else if/else statements are really what you need , or if you can use a switch instead. Switches are generally used when you have a specific amount of possibilities in which your code can go, all determined by the value of a single variable. In these, you need to make sure you add a break to the end of each case. They look like this:

int x = 5;

switch(x){
  case 1:
    //run if x == 1
    break;
  case 2:
    //run if x == 2
    break;
  case 3:
    //run if x == 3
    break;
   default:
    //run if any other number
  }

//more code here

In this example, you see the switch gets the variable passed into it, and then you define what each case means via “case”. Keep in mind, there can not be duplicate cases, the default case is optional, and will run fine if nothing is placed there , that just means nothing will run if it hits that. The break statements are optional, if you would like code to flow into another case, you can omit the break statement and allow the code to continue. The break is just used to terminate the switch sequence .Nesting switch statements is allowed, but
it does make the code a little more unreadable. And this is what I mean by determining what you need to branch logic. In my opinion, if you have to check a value and go based on that value, a switch case would work perfectly, however, if what you need to do is determine boolean values, checking whether something
is true, maybe checking a number AND running another boolean check, then you would most likely just use an if statement.


The last little thing i would like to go over is ternary operations. If you have to check a boolean value to do one line of code, it maybe easier to just use a ternary statement. It is written like the example below:


/************************************************************************
if example
************************************************************************/

int x = 5;
int y = 10;
int z;

if (x < y) {
    z = x;
}
else {
    z = y;
}
//more code here

/************************************************************************
Ternary example
************************************************************************/

int x = 5;
int y = 10;
int z;

z = (x < y) ? x : y;


As you can see the syntax goes: (condition) ? true : false;
In the next tutorial, I will be going over loops!

Leave a Reply