RE: help with c++ if test

  • From: "Sina Bahram" <sbahram@xxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Wed, 9 Feb 2011 14:32:47 -0500

I disagree about goto. Every example you've provided, Ty, there's been a better 
way to do it without goto.

Take care,
Sina


-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx 
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Littlefield, Tyler
Sent: Wednesday, February 09, 2011 2:14 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: help with c++ if test

Sina:
You could write it as Lex suggested, and just use a variable to check, 
whichever solution you choose, it would work fine. Here's my point. Goto 
is a tool. Like any tool in c/c++, it can be abused, but it can also be 
useful to jump out of code, or when you don't want code replication. if 
(!foo()) goto handleerror; if (!bar()) goto handleerror. I've used 
this... once, possibly twice when the code for handling such an error 
was kind of long and complex and I didn't want to try to pass everything 
through a function to accomplish the same thing.
On 2/9/2011 12:06 PM, Sina Bahram wrote:
> Here's a new rule.
>
> Assume that goto does not exist. Just get rid of it. It's gone, *waves hands*.
>
> Now, rewrite that code.
>
> Take care,
> Sina
>
>
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx 
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Kristoffer 
> Gustafsson
> Sent: Wednesday, February 09, 2011 2:03 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Re: help with c++ if test
>
> Hi.
> ok, some code of mine looks like
> #include<iostream>
> int main()
> {
> string test;
> cin>>test;
> if (test=="fine" goto good;
>
> good:
> cout<<"it works!";
> return 0;
> }
>
> I try this and I get expected `before goto.
> What can be wrong?
> /Kristoffer
>
> ----- Original Message -----
> From: "Ken Perry"<whistler@xxxxxxxxxxxxx>
> To:<programmingblind@xxxxxxxxxxxxx>
> Sent: Wednesday, February 09, 2011 7:53 PM
> Subject: RE: help with c++ if test
>
>
> It is easy to do text adventures or any programming without goto.  Note that
> my commercial mud has 0 goto statements in it.  Now all classes in college
> will tell you to avoid goto unless you're dealing with programming operating
> systems and need to be able to jump out of scope.  Which is one of the
> reasons you do not want to use goto.  For example
>
>   Void myfunc(){
> Goto two;
> }
>
> Void myFunc2(){
> Two:
>
> }
>
> You can actually jump function to function with goto which breaks all kinds
> of things in functional and object oriented programming.  Now that is
> necessary some times when doing error handling.  The truth is though if your
> coding your own application you really should never need goto.   If you find
> yourself using goto you have probably designed your program wrong.
>
> I will not go into a deep why or why not to use it because if your thinking
> you cannot create an adventure game without it you will not understand a lot
> of my explanation.  I think you need to go through some tutorials on c or
> c++ which ever one you're using because you have a lot to learn.
>
>
>
> Ken
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Kristoffer
> Gustafsson
> Sent: Wednesday, February 09, 2011 1:41 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Re: help with c++ if test
>
> Hi.
> Without goto it would be very hard to do text adventures.
> I don't think it can be done, or can it?
> Also, if I want my program to exit instead of continuing, how do I do?
> I mean for example, if I die in an adventure, I want to exit the program at
> that time, not continue the game.
> /Kristoffer
> ----- Original Message -----
> From: "Littlefield, Tyler"<tyler@xxxxxxxxxxxxx>
> To:<programmingblind@xxxxxxxxxxxxx>
> Sent: Wednesday, February 09, 2011 7:28 PM
> Subject: Re: help with c++ if test
>
>
>> That produces all sorts of problems. jumping to the bottom of a loop is no
>> problem with a goto, and it avoids issues with your exiting variable. it's
>> also quicker, because you just jump to the bottom. otherwise you may
>> break, but it's still going to have to do one more check (two, actually,
>> depending on how the compiler does things) to see if exiting is false.
>> On 2/9/2011 11:23 AM, Lex wrote:
>>> 09.02.2011 20:17, Littlefield, Tyler пишет:
>>>> really really highly recommend you avoid goto. This isn't basic, and
>>>> they're not very useful except for in some odd cases, far and few
>>>> between. Such as jumping out of two nested loops like so:
>>>> int i, j;
>>>> for (i = 0; i<  100; i++)
>>>> {
>>>> for (j = 0; j<  100; j++)
>>>> {
>>>> if (i+j == 100)
>>>> goto botttom;
>>>> }
>>>> }
>>>> bottom:
>>>> //do something here
>>> Actually, effect you're trying to achieve is more correctly by the
>>> conditional variable (at least in terms of procedural programming):
>>> bool exiting=false;
>>> for (i = 0; i<  100&&  !exiting; i++)
>>> {
>>> for (j = 0; j<  100&&  !exiting; j++)
>>> {
>>> if (i+j == 100)
>>> exiting=true;
>>> }
>>> }
>>>
>>>
>>> or may be even
>>> for (j = 0; j<  100; j++)
>>> {
>>> if (i+j == 100)
>>> {
>>> exiting=true;
>>> break;
>>> }
>>> }
>>> }
>>>
>>>
>>> Lex
>>>
>>> __________
>>> View the list's information and change your settings at
>>> //www.freelists.org/list/programmingblind
>>>
>>>
>>
>> -- 
>>
>> Thanks,
>> Ty
>>
>> __________
>> View the list's information and change your settings at
>> //www.freelists.org/list/programmingblind
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
>


-- 

Thanks,
Ty

__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

Other related posts: