0

我想知道断点被击中了多少次。

问题是:对于前 4 个命中中的每一个,写下在调试器中可以看到的 currentMin、current Max 和 mid 的值。

我的值是:n=40,currentMin=0,currentMax=40 和 mid=20。

这是四连击吗?还是我需要使用上述值循环四次?

public class Breakpoint {

        public int breakp() {

                int n = 40;

                int currentMin = 0;
                int currentMax = n;

                while (currentMin < currentMax) {
                        int mid = (currentMin + currentMax) / 2;
                        if (mid * mid + mid + 1 <= n)//breakpoint is on this line {
                                currentMin = mid;
                        } else {
                                currentMax = mid;
                        }
                }
                return currentMin;

        }

        public static void main(String[] args) {

                Breakpoint b = new Breakpoint();
                int a = b.breakp();
                System.out.println(a);
        }

}
4

2 回答 2

1

我在跟踪程序时收到的前四个点击是:

min=0, max=40, mid=20

min=0, max=20, mid=10

min=0, max=10, mid=5

min=5, max=10, mid=7

您需要绕过该函数四次才能获取这些值。

于 2012-08-11T15:49:53.263 回答
1

如果断点在这一行之后:

if (mid * mid + mid + 1 <= n){

4 次迭代后,值应为..

n:40 mid:7 currentMin:5 currentMax:10
于 2012-08-11T15:59:18.833 回答