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