Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Ben Bacarisse Newsgroups: comp.lang.javascript Subject: Re: Logic problem, i always had problem translate until statements into while Date: Thu, 26 Jan 2017 23:06:18 +0000 Organization: A noiseless patient Spider Lines: 51 Message-ID: <87sho5zaj9.fsf@bsb.me.uk> References: <7112e5ec-cc6f-4b7b-b7db-b83b52bf8fbe@googlegroups.com> <87inp11s6w.fsf@bsb.me.uk> <36a74771-51d8-439a-bd1a-0c7338031b9c@googlegroups.com> <10dc87b2-3078-4b1d-a914-0461db1c80a6@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="3b591314b8affd39d0054b2ccd164f7b"; logging-data="32385"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18o6Cb4lBiNMaHbHWNJLSz2DMhQgiqwBqA=" Cancel-Lock: sha1:2m57VoAL6Kz7XKiS6tO3bLHzSrw= sha1:gmQM5YFJ+zZl8AH7pWLWHTeK0m4= X-BSB-Auth: 1.a97a4f6db2e4442f011f.20170126230618GMT.87sho5zaj9.fsf@bsb.me.uk Xref: csiph.com comp.lang.javascript:32362 jonas.thornvall@gmail.com writes: > Den torsdag 26 januari 2017 kl. 22:24:32 UTC+1 skrev jonas.t...@gmail.com: >> Den torsdag 26 januari 2017 kl. 21:29:05 UTC+1 skrev Ben Bacarisse: >> > jonas.thornvall@gmail.com writes: >> > >> > > do until (regular == true && connected == false ) >> > > >> > > I honestly feel a bit lost, because i think they are so easy to code >> > > using do until. >> > >> > What as the initial values of 'regular' and 'connected'? >> > >> > > So how should i think about it? >> > >> > Provided the initial value of the resulting while condition is true you >> > just need to invert it: >> > >> > while (!(regular == true && connected == false)) ... >> > >> > You can use De Morgan's laws to simplify that if you like: >> > >> > !(A && B) <=> !A || !B >> > !(A || B) <=> !A && !B >> > >> > in your case >> > >> > !(regular == true && connected == false) >> > => !(regular == true) || !(connected == false) >> > => regular != true || connected != false >> > >> > which I'd just write as >> > >> > while (!regular || connected) ... >> > >> > Often, the use of do ... until is simply an error (while is needed more >> > often in algorithms than do...until). In those cases there is no need >> > for the loop to execute at least once and you don't need to check that >> > '!regular || connected' is initially true. >> > >> > -- >> > Ben. >> >> Unfortunately they are both false, Why is that unfortunate? If they are both initially false your do...until can be written as a while with the condition negated. -- Ben.