If it is inedible, e.g. too salty or overcooked, I'll request a replacement. If it is simply a poor selection on my part because I did not like the dish, no I would not complain......I would give the restaurant a second chance if the food was made properly with quality ingredients, but I would not return if it were made poorly and without care. I would simply decide not to return in such a case.
The exception to this would be if i were asked by the owner, manager, chef or server if the meal was satisfactory and to my liking......then I would respond.....do you really want to know?.....I imagine their response would be *Yes*, then I would explain and expect them to make me whole and remove the item from my check.
If it's a restaurant to which I would want to return, sometimes I'll email the management after the meal.
If the food is so terrible that I leave it on my plate, I usually only mention the problem if the server asks. I do speak up if something is off, though.
I've run into several defensive servers, restaurant owners and managers who can't take constructive criticism over the past 5 years, so I rarely mention anything in person anymore.
Much depends on how bad was bad.
Even more depends on what I believe to be the willingness of the restaurant to improve.
So, for example, I'm in my local place and the owner says. "how was it, John", then I'm likely to say "It was OK, the sauce with the beef needed more ....."
Or, for example, I've found myself in a tourist trap that's packed with punters. The owners are not going to give a shit about my complaint so I don't waste my time.
This will probably be moved to the NAF board.
When I am at a restaurant, and the food is not good (i.e. over- or underdone, too salty, gristly, or in any way unsatisfying), I tend to make sure to get somebody's attention right away and let them know, so it can be fixed.
Depending on the resto's way of dealing with it, I return. Or not '-)
But silently eating something for which I paid good money, and which sucks? No way.