https://medium.com/@niitwork0921/programming-control-structures-conditional-and-looping-statements-2ffc4b45da74