I am new to coding and was told that using breaks is a bad form of programming. I was wondering if anyone knew a good way to change the break without changing how the program functions? I have attached the code I am working with.Code in question
Asked
Active
Viewed 55 times
-3
-
1Welcome to Stack Overflow! It's a lot easier to help when you post code as text, not as an image. – Henry Apr 08 '22 at 00:03
-
3There is nothing inherently wrong with using `break`, especially in a case like this. Whoever told you that is doing you a disservice. – Tim Roberts Apr 08 '22 at 00:05
2 Answers
0
Running your code I don't see any problems. What I would change is that you can make a an argument for the function and return True or False, like this:
def isprime(a):
c=a-1
for i in range(2, c):
b=a%i
if b == 0:
return False
else:
return True
isprime(4)
isprime(7)
In this example I replaced break with return, this will break the loop but also return whether the number is prime or not.
To clarify, there is nothing wrong with using break and I think it is a very usefull possibility when looping.
KingTasaz
- 151
- 7
-
It's especially useful in Python because of the `else:` clause of its loops. – Barmar Apr 08 '22 at 00:11
-
-
The `else:` block is executed if the loop runs to completion rather than being exited with `break`. It's not really needed in your version, because you return instead of breaking. You can simply put `return true` after the loop. – Barmar Apr 08 '22 at 00:13
-
I wasn't going for neatness, per say, just for useability and understandability as in copying the format of the questioner – KingTasaz Apr 08 '22 at 00:32
-1
You could use either a return statement (if you want the function to end) or have conditions that'll prevent the other part of the code from executing.
For example:
def is_prime():
a = int(input("Integer to check if prime"))
c = a-1
prime = True # boolean variable
for i in range(2,c):
b = a % i
if b == 0:
print(a, "is not a prime number")
prime = False # will prevent condition #2 from executing
else:
if prime == True: # condition #2
print(a, "is a prime number")
is_prime()
Also, you shouldn't worry about the break and continue statements on smaller loops. Problems occur when your loop isn't organized and is long. See this post here
Mohamed Saeed
- 1
- 1