GDG stands for generation data group. Always GDGs take care of your dataset with different generations. A best example is a telephone company operating its accounts, processing billing for its customers. There are files to generate all over the month for 30 days. So, by giving simple Technic GDG , you can capture data for 30 days in 30 different datasets.
-2, -1, 0, +1, +2, +3, +4
In JCL, always (0) version states that current version. If you want to create another generation, you need to give GDG(+1). Even, you use the same dataset as input, in downstream steps, you need to give as (+1). So, this states that, it creates next to current generation.
What to tell correct answer in Interviews, if GDG (+2) is given in JCL:
Suppose, you have given (+2) in JCL instead of (+1), then, it creates (+2) generation. So, it jumps generation number to 2. Usually, it should be (+1). Since you have given as (+2), it creates (+2) generation after (0) generation.
Better say that, in interviews, if you give GDG (+2), job will run fine, without any errors.