Have you ever spent the whole day working hard at something, like some sport, hiking, gardening, etc and felt very hungry at the end of the day? Most of us have. Think of a time when you worked really hard (perhaps returned from a day of skiing), and felt like you could eat anything. You could have gulped down the muck from The Matrix and it would have been the most satisfying meal ever. Its a good feeling, eating a meal you really earned. Everything tastes great.
Now also consider a time when you felt really "hungry", but this time you haven't really done anything all day and can't decide what to eat. Perhaps you had a lot of food in the fridge or pantry, but none of it seemed appealing. You had a craving for something else... probably something heavy and fatty. For instance, maybe you had plenty of cheaper/healthier/easier meal options, but instead you went out to get Chinese food or pizza.
What's the difference between these two scenarios?
I think that a big problem with people nowadays, including myself, is that we spend the average day completely inactive. We exert so little energy in our daily routine - wake up, go to work/school, come home, watch TV or hang out with some friends, go to sleep. We spend most of the day in one spot, and if we do go somewhere else, we drive there. This skews the way our cravings are supposed to develop naturally.
What if you went a whole month without eating candy. Would that be hard? If candy isn't your weakness, then try meat, or fried food, or breads, or whatever you might indulge while personally knowing it is nothing but bad news. I have personally worked myself into many corners where I ended up eating foods that I knew weren't the best (and by the best I mean that ones that would be satisfying long-term). I am sure you have too. How come?
My theory is that we are lethargic. Ideally, every meal would be like the first example I gave - after a good deal of physical activity and our "hunger" sense really turned on. No one in their right mind really wants to eat McDonald's after running several miles. However, you might want it after sitting down all day, be it in front of a TV, computer screen, paperwork, in a car, or whatever.
This kind of laziness prevents us from acting naturally. Our bodies make an unnatural shift. It's like the lights go out and we don't how do judge what our bodies are telling us anymore. We need that exercise for more than being "in shape", we need it to regulate our hunger, emotions, and sex drive.
If you are trying to make healthier life choices but it causes you to really struggle all day, do not get discouraged! If "holding back" seems like too much, there's probably more to it than your self-discipline.
There are many many variables because the full answer is an entire lifestyle, but exercise is a very important factor. Long story short - that pizza craving might mean its time to hit the gym. Then, your body might tell you what it really needs. My personal thinking right now is that treats are ok, its not good to create more stress for yourself by being healthier because then it'll just reverse. Health should relieve stress. However, the treats shouldn't be complete garbage, rather perhaps lightly processed but still "good for you" in some ways. However, if you want something that is really junky, do some exercise and see if you still want it afterwards. I'm not talking about doing more exercise so that you can indulge more. I'm talking about doing some exercise so that you can eat and live better. I'll most likely writing more about this later. Good luck!