Description
When you put a breakpoint on a outer while loop in a method, the debugger break only once instead of for each loop executed. Also, a loop in a if won't work correctly. But if you have an inner loop (loop in a loop), the breakpoint work as expected, so the debugger break after each execution of the inner loop.
Environment
- Operating System: Windows 10
- JDK version: 17.0.8
- Visual Studio Code version: 1.83.1
- Java extension version: 1.24.0
- Java Debugger extension version: 0.55.0
Steps To Reproduce
Using this code:
package sandbox;
public class At09Ex05 {
public static void main(String[] args) {
int nb1, nb2, som1, som2;
som1 = nb1 = 17;
som2 = nb2 = 7;
while (som1 != som2) {
while (som1 < som2) {
som1 += nb1;
}
while (som2 < som1) {
som2 += nb2;
}
}
System.out.println("Le PPCM de " + nb1 + " et " + nb2 + " est " + som1);
}
}
- Place a breakpoint on line : while (som1 != som2) {
- Run the debugger and the program stop at the breakpoint
- Use Resume (F5)
Current Result
The program run until the end when using F5 on the outer loop
Expected Result
Since the loop should execute a few times, Resume (F5) should stop again at the breakpoint after executing the loop.
Additional Informations
If you do the same test with a brepoint on the while (som1 < som2) { , the behaviour is correct.
If you change while (som1 != som2) { for if (som1 != som2) { then the two inner loops have the problem.