i怎么可能去大于k啊,i最大都只能取到k

img

是谁告诉你i最大只能到k的
并没有任何代码限制i不能大于k呀
for里写i<=k,只是一个循环条件,当i>k时跳出了循环
那么既然循环能跳出来,最终i肯定比k大了
后面这个判断只不过是用来判断到底是循环正常结束了还是break出来的而已

2的平方根是1.4,但是k是int类型的,只会取到1这个整数,也就是说i在循环时赋值2,就已经大于k了,所以会进入下面的判断