+ 1

When a break breaks?

i=5 while True: print(i) i=i-1 if i<=2: break Why it doesn't print 2 even if it's before the break in the code?

3rd Aug 2023, 3:13 PM
Dario Zaccheroni
Dario Zaccheroni - avatar
4 Answers
+ 4
Dario Zaccheroni because the break statement is executed when 'i' is less than or equal to 2`if i<=2` If you want to print 2 before breaking out of the loop, change the statement `i==2` insted of`if i<=2`.
3rd Aug 2023, 3:30 PM
Darpan kesharwani
Darpan kesharwani - avatar
+ 3
Dario Zaccheroni Your mistake is little bit, that you use '=' sign if you remove '=' sign in if block then counting print like this: 5 4 3 2
3rd Aug 2023, 3:29 PM
Sakshi [Offline 🙃]
Sakshi [Offline 🙃] - avatar
+ 3
Since are subtracting before the check where you break, it is not printing it. So when i=3, 1. The prints "i" which is 3 2. Subtracts 1 from "i" that is currently 3 and gives you 2 and assigns "i" to 2 3. Checks if "i" is equal to or less then 2. 4. That check results in True which means the program breaks.
3rd Aug 2023, 3:30 PM
Justice
Justice - avatar
+ 2
The code you've provided prints numbers starting from 5 and decreasing by 1 in each iteration of the `while` loop. However, it stops when `i` becomes less than or equal to 2 due to the `if i<=2` condition and the `break` statement. In the last iteration, when `i` is equal to 2, the loop prints 2 as expected, and then the `if i<=2` condition is checked. Since 2 is indeed less than or equal to 2, the `break` statement is executed, which immediately exits the loop before another iteration can take place. So, in this case, the code behaves correctly and stops before printing 1 because the `break` statement interrupts the loop once the condition is met.
4th Aug 2023, 4:49 PM
𝐀𝐲𝐞𝐬𝐡𝐚 𝐍𝐨𝐨𝐫
𝐀𝐲𝐞𝐬𝐡𝐚 𝐍𝐨𝐨𝐫 - avatar