vicfic,

Why do you have the white bars on either side of the image?

name_NULL111653,
HotsauceHurricane,

Sudo meme - -help

cupcakezealot,
@cupcakezealot@lemmy.blahaj.zone avatar

do run while not edge and not look down

AMillionMonkeys,
@AMillionMonkeys@lemmy.world avatar

One of these days I’ll read through the PEP and figure out why Python doesn’t have do-while. I understand that it’s just as bad, but while(True) feels so dangerous.

oce,
@oce@jlai.lu avatar

Why is it more dangerous to check before the loop?

AMillionMonkeys,
@AMillionMonkeys@lemmy.world avatar

It’s not - it just feel more dangerous somehow.

racketlauncher831,

Perhaps he’s saying relying on the break condition that’s inside the loop.

tdawg,

Curious what use case you have for needing a do-while. Honestly I barely use while at all, a good ol for-loop normally does the trick

prograhammingdev,

IMO I find it really useful in scenarios where you have a set condition that needs to be met (and can always be met so it’s not endless) and looping through to achieve it. I wrote a simple part calculation for a production company I worked for. Essentially while parts_needed < parts packed, pack qty ‘x’ of part 1, and qty ‘x’ of part 2 until all parts were filled to the correct amounts. Though it can be done with either / both I just find it more legible.

pixelscript,

I got an application that runs through a big calculation that has to pass several sanity checks along the way. If any check fails, the input parameters are tweaked and the calculation starts again from the top, iteratively approaching the ideal solution. Do-while is perfect for this.

It beats recursion in non-tail-call-optimized implementations (JavaScript…). And while this could be done just as well with a comon while loop plus a flag variable, I like the way the syntax of do-while naturally reads as, “Do [thing]. … Did it work? No? Do it again”.

I’d still argue it’s redundant. If they got rid of it tomorrow I’d refactor and cope with no complaints. But as long as it’s around, I like using it.

MrLuemasG,

The use cases definitely do come up where you want the logic inside the loop to execute at least once. One common use case I have is validating user input in console applications. Put the instructions for validating the user’s inputs inside a do while and then run logic to validate it at the end - that way you can easily loop back to the start and re-prompt them for the user input again.

KTVX94,

I literally use this meme in a slide when teaching while and do while.

glibg10b,

Well, it’s wrong. The only difference between the two kinds of loops is that do-while starts by unconditionally running the body once

KTVX94,

Yes, that’s true. It’s also good enough to make an abstract concept more approachable while getting a kick out of it too. Honestly this is more of a “well akcshually” thing that someone who already knows how this works would point out (nobody has so far) than something that misleads students who don’t get it. It works.

xmunk,

Please switch over to something that actually has a condition that needs to logically be evaluated on each step and not as an end condition - yes this meme is technically correct for the case where they both start adjacent to the cliff and programmers should always consider (cliff) edge cases… but the visual strongly implies they’ve been running for a while.

KTVX94,

I mean yeah, it does have that problem, but even if it’s not entirely accurate it’s good enough to illustrate an otherwise abstract concept that’s not exactly easy to understand for someone who’s just getting started with programming and may not really be interested in it, rather looking to be an artist or game designer. Also humor really helps when it comes to learning. It does way more good than bad in my experience so far.

CodeMonkeyUK,
@CodeMonkeyUK@lemmy.world avatar

They do say, “Those who can do…”

hperrin,

When productivity is measured in lines of code:


<span style="color:#323232;">do {
</span><span style="color:#323232;">  if (!edge) {
</span><span style="color:#323232;">    run();
</span><span style="color:#323232;">  }
</span><span style="color:#323232;">} while (!edge);
</span>
collegefurtrader,

When productivity is measured in lines of code:


<span style="color:#323232;">do {
</span><span style="color:#323232;">  if (!edge) {
</span><span style="color:#323232;">    run();
</span><span style="color:#323232;">  }
</span><span style="color:#323232;">} while {
</span><span style="color:#323232;">  (!edge);
</span><span style="color:#323232;">  }
</span>
exu,

You can probably do this:


<span style="color:#323232;">do 
</span><span style="color:#323232;">{
</span><span style="color:#323232;">  if (!edge) 
</span><span style="color:#323232;">  {
</span><span style="color:#323232;">    run();
</span><span style="color:#323232;">  }
</span><span style="color:#323232;">} 
</span><span style="color:#323232;">while 
</span><span style="color:#323232;">{
</span><span style="color:#323232;">  (!edge);
</span><span style="color:#323232;">  }
</span>
xmunk,

You’re going to need to try harder than that - you don’t even have any doc block comments.

snowraven,

Purely in technical terms, this meme doesn’t really fit unless they start running literally from the edge.

While and do while are equal except for the very first test. So if the very first test does not evaluate to false, they are essentially same. In the meme that implies they started running sometime before reaching the edge, that runs the “run()” atleast once and later on for every run it would be checked and it would be false at the cliff edge.

wieson,

Yep, replace edge with isOnGround or something

squaresinger,

Actually, doesn’t change the matter.

xthexder,
@xthexder@l.sw0.com avatar

Yep, needs to check if the next step has ground, otherwise you’re already falling.

wahming,

Yeah I ran through the logic in my mind and got confused, came to the comments to ask what I was missing

Phen,

Years ago when this meme first came my way I tried to explain this and nobody agreed with me, it was driving me mad.

Phoenix3875,

<span style="color:#323232;">do { explain } while ( !they.understand )
</span>
xthexder,
@xthexder@l.sw0.com avatar

<span style="color:#323232;">do {
</span><span style="color:#323232;">    say("I use Arch btw");
</span><span style="color:#323232;">} while ( they.interested );
</span>

This loop never runs twice.

squaresinger,

Finally a correct application for the do-while meme!

Synthead,

Ruby has a fun until for refuted conditionals!


<span style="color:#323232;">until(they.understand) { explain }
</span>

Reads like English 🙃

Bishma,
@Bishma@discuss.tchncs.de avatar

This is why computers should still have a Turbo button that limits the CPU to 8MHz.

cupcakezealot,
@cupcakezealot@lemmy.blahaj.zone avatar

My dad’s computer had that and I loved pushing it :3

squaresinger,

It’s still ironic to me that the turbo button’s purpose was to limit the CPU speed.

You know, like you use a turbo on a car to limit it’s performance.

WhiskyTangoFoxtrot,
squaresinger,

After they flipped the meaning. But even then, if the PC didn’t have the button it would run at full speed.

Turning it off would limit the speed. So the purpose of the existence of the button was not to make the PC go faster, but rather to make it go slower if you turned it off.

It’s kinda like as if the eco mode button in you car was labelled “turbo mode” with flipped meaning.

Bishma,
@Bishma@discuss.tchncs.de avatar

Brands starting doing this in the 486 days to match customer expectation. In the 286 and 386 days it slowed the PC down to 8MHz. It was called turbo because it was 8088 Turbo mode, as the 8088 nominally operated at 4.7MHz.

Source: Those of around since the 8088 days viciously mocked the brands that did this on newsgroups because they were catering to newbs… or whatever we called them back then.

Rodeo,

Greenhorns?

xmunk,

Naming things is one of the two hard problems in computer science and the turbo button was the button you press if your computer is going too fast… it made sense from someone’s point of view.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • programmerhumor@lemmy.ml
  • DreamBathrooms
  • ngwrru68w68
  • tester
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • mdbf
  • tacticalgear
  • JUstTest
  • osvaldo12
  • normalnudes
  • cubers
  • cisconetworking
  • everett
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • modclub
  • megavids
  • lostlight
  • All magazines