goto loops
-
NEVER, EVER use GoTo - It's generally very bad programming and makes the code harder to read. That goes for both C# and VB.NET.
While advice like this is doled out to inexperienced developers, once you reach a certain level of proficiency it becomes poor or useless advice. I was told by uni lecturers as I was doing my degree that inexperienced developers can try to use gotos as a means for everything, rather than thinking about more concise loop construct which is why they're advised to steer clear. However, this doesn't make the advice sound - it's more of a teaching aid to guide in the right direction. To give a specific example, using a goto as an exit clause in a set of nested 'for' loops is probably the most efficient way of forcing an early exit, and is probably the easiest to read. Goto is perfectly acceptably - just try not to overuse it.
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
-
Ok, surely the first and last examples here can be done using return in a try-finally block?
Pete
-
While advice like this is doled out to inexperienced developers, once you reach a certain level of proficiency it becomes poor or useless advice. I was told by uni lecturers as I was doing my degree that inexperienced developers can try to use gotos as a means for everything, rather than thinking about more concise loop construct which is why they're advised to steer clear. However, this doesn't make the advice sound - it's more of a teaching aid to guide in the right direction. To give a specific example, using a goto as an exit clause in a set of nested 'for' loops is probably the most efficient way of forcing an early exit, and is probably the easiest to read. Goto is perfectly acceptably - just try not to overuse it.
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
Did you vote him a 1?
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
Did you vote him a 1?
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001Yes - I scored the post in a way I saw fit and gave reasons in the response I posted. Which I believe is actually the polite way of doing things!
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
-
:-D This is a discussion and I'm not claiming a try-finally block would be a better solution.
Pete
-
This article/blog[^] Shows situations where goto statements can be used to greater effect than other soloutions although I must confess I can see better ways to code some of the examples, that the author ignores. I was always taught to avoid goto's at all costs and have always stuck to this advice, however, like you, I have noticed collegues use them a lot.
pompeyboy3 wrote:
to greater effect than other soloutions although I must confess I can see better ways to code some of the examples
to greater effect than the other solutions he provided, but not greater than real good solutions. As you started to point out, you can write his example in perfectly good code without requiring to the goto instruction. IMHO, this blog entry is rather poor.
-
Yes - I scored the post in a way I saw fit and gave reasons in the response I posted. Which I believe is actually the polite way of doing things!
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
Wow - looks like someone didn't agree with you, and didn't say why.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
Wow - looks like someone didn't agree with you, and didn't say why.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001It's not something I'm going to lose any sleep over!
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
-
This article/blog[^] Shows situations where goto statements can be used to greater effect than other soloutions although I must confess I can see better ways to code some of the examples, that the author ignores. I was always taught to avoid goto's at all costs and have always stuck to this advice, however, like you, I have noticed collegues use them a lot.
Funny how no-one even the comments could come up with a really good alternative (I agree for simplicity, the && is approach is best). How would I do it?
bool Do(params Func<bool>[] args)
{
foreach (var a in args)
if (!a())
return false;
return true;
}
...if (Do(Step1, Step2, Step3, Step4, Step5, Step6, Step7))
Console.WriteLine("Brillant!");xacc.ide
IronScheme - 1.0 RC 1 - out now!
((λ (x) `(,x ',x)) '(λ (x) `(,x ',x))) The Scheme Programming Language – Fourth Edition -
Lucian-aSterX wrote:
i give up.
Why? You're not French...
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
Funny how no-one even the comments could come up with a really good alternative (I agree for simplicity, the && is approach is best). How would I do it?
bool Do(params Func<bool>[] args)
{
foreach (var a in args)
if (!a())
return false;
return true;
}
...if (Do(Step1, Step2, Step3, Step4, Step5, Step6, Step7))
Console.WriteLine("Brillant!");xacc.ide
IronScheme - 1.0 RC 1 - out now!
((λ (x) `(,x ',x)) '(λ (x) `(,x ',x))) The Scheme Programming Language – Fourth Edition -
It's not something I'm going to lose any sleep over!
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
-
Wow - looks like someone didn't agree with you, and didn't say why.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001:laugh:
Pete
-
No serious programmer uses a
goto
. EDIT (After the 1 vote)---------------- Okay - maybe we all do - when wegoto
the bathroom....45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001modified on Monday, July 5, 2010 10:22 AM
-
Wasn't me even though I don't agree with you. But since you are so dead set I'm wrong, I challenge you: Show me ONE piece of code where a GoTo has a meaningful use!
Now your just setting him up to post code in the lounge and getting him flamed for doing so. I'm on to you ;P
-
No serious programmer uses a
goto
. EDIT (After the 1 vote)---------------- Okay - maybe we all do - when wegoto
the bathroom....45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001modified on Monday, July 5, 2010 10:22 AM
John Simmons / outlaw programmer wrote:
No serious programmer uses a goto.
The whimsical ones do though :-D
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
-
Strange - when I post a comment along those lines, I get downvoted, but when you do it gets upvoted. Makes me think that some people here go more for the person than the message! Isn't the first time I have noticed that, though...
You earn your upvote rights by scaring people. ;)
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
-
Wasn't me even though I don't agree with you. But since you are so dead set I'm wrong, I challenge you: Show me ONE piece of code where a GoTo has a meaningful use!
10 Print "This Code is useless."
20 Goto 10"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
-
Strange - when I post a comment along those lines, I get downvoted, but when you do it gets upvoted. Makes me think that some people here go more for the person than the message! Isn't the first time I have noticed that, though...
Well if you must know I up voted him for the remark about the 1 vote and the goto the bathroom part. Could be that my sense of humor is a bit off today but I thought it was funny so...
-
10 Print "This Code is useless."
20 Goto 10"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.