this post was submitted on 29 Nov 2023
-7 points (40.0% liked)

Programming

17352 readers
346 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

I'm studying programming, and I don't agree woth my teacher. She basically said that if we use break (and continue too maybe) our test is an instant fail. She's reasoning is that it makes the code harder to read, and breaks the flow of it or something. (I didn't get her yapping tbh)

I can't understand why break would do anything of the sorts. I asked around and noone agreed with the teacher. So I came here. Is there a benefit to not using breaks or continues? And if you think she's wrong, please explain why, briefly even. We do enough down talking on almost all teachers she doesn't need more online.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 11 months ago (4 children)

I can understand telling you not to use break and continue if the point is to teach you to think about different ways to solve problems, but saying it's because "it makes the code harder to read" is bullshit. Readable code flow is important, but if using those makes your code too hard to read, your problem is most likely that you've just written shitty code.

To get really into the technical weeds, what break and continue boil down to in the compiled machine code is a non-conditional branch instruction. This is just going to move the execution pointer to a different location in memory. Other keywords, such as if, elif, and else, will compile down to conditional branch instructions. Basically the same thing, but they have the added cost of having to evaluate some data to see if the branch should happen at all. You can achieve the same things with both, but the high level code might need to look different.

For instance, if you're in a loop, continue will let you skip the rest of the code in the loop to get to the next iteration. Not a huge deal to instead make the entire code block conditional to skip it. However, the break keyword will let you exit the loop at any point, which is more complicated to deal with. You would have to conditionalize your code block and force the looping condition to something that would stop it on the next iteration. If you ask me, that has the potential to be much more complicated than necessary.

Also, good luck using switch without any breaks, but I'm guessing that's not quite what your teacher had in mind.

In short, just go with it for now. Be creative and find a way to make it work to your teacher's liking, but always try to be aware of different ways you can accomplish a task. Also, I don't know what language you're using, but if you're in C/C++ or C# and you feel like getting really cheeky, it doesn't sound like she disallowed the use of goto. It's kinda like break with fewer safeguards, so it's super easy to write broken code with it.

[–] [email protected] 3 points 11 months ago (1 children)

Also, good luck using switch without any breaks, but I'm guessing that's not quite what your teacher had in mind.

The teacher, probably: “You must always put a switch in its own function! Then use return at the end of each case.”

@zib @UnRelatedBurner @programming

[–] [email protected] 3 points 11 months ago (1 children)

Good point, that is a valid way to do it sometimes, but it's extremely situational and trying to do that for everything would be absolute nonsense.

[–] [email protected] 2 points 11 months ago

Oh absolutely. I can think of several situations where that wouldn't work well or at all, for example, a switch statement that sets up variables to be used in the rest of the function.

@zib @UnRelatedBurner @programming

load more comments (2 replies)