Been through the ice-cream/chockies/lollies/sweet things before dinner here! I explain that he needs to eat the food that helps his body work properly first, then the nice stuff that only makes his tongue feel nice after, if there's still room for it (and wouldn'tchya know it, there always is!). If he asks again I say "Can you tell me what I just told you about eating x before dinner?", and if he gets it mixed up we talk about it again. If he keeps asking after that I say "I already told you why you can't eat it before dinner so if you ask any more I'm not going to answer because you already know". It usually doesn't get to that final stage, and if it does he resigns himself. I mean, WE know why ice cream before dinner is no good after a lifetime of knowing (though not when we were little, we put it together when we were a lot older, I bet), and kids need to be told what the reasons are and have it reiterated from time to time. Kids learn their world by repetition, not by 1-2-3's. That only teaches them blind obedience. Obedience is not my ultimate aim, understanding and cooperation is.
MadB - it's so often like that, isn't it? In horseriding we say "back to basics", and in human terms we say KISS (Keep it Simple Stupid)! It's always something really basic that's going on when others are getting hurt! Of course their aim isn't to hurt someone else, that's always a side-effect. DS now refers to it as 'being horrified' when DD accidentally hurts him, ever since the time his pony kicked him in the belly and I explained that she would have been worried about something, not known just where he was and that if she knew that she had hurt her boy she'd be horrified. So, when he explained to DP what happened, he told him that his pony kicked him and was horrified!
It is so worth the time to find the motivations behind behaviours, because 'behaviour' is a symptom of what's going on, it's not an end in itself. When you take the time to communicate with them about what's driven them to do something you take your relationship to a rich new level between the two of you