请问java中这种for的用法是啥意思

for(level=1;btree[level]!=0;) /*比较树根及数组内的值*/
{

if(data[i]>btree[level]) /*如果数组内的值大于树根,则往右子树比较*/
level=level*2+1;
else /*如果数组内的值小于或等于树根,则往左子树比较*/
level=level*2;
}

就是函数内部会修改level,所以for循环就会一直循环到

 btree[level]!=0;

for 还是用于循环 括号里代表了循环条件 满足条件时继续循环 执行for内部代码
知道具体的循环次数,比如我就要循环100次。这种情况下选择for循环。
不知道具体该循环多少次,只有一个具体的条件,当满足这个条件时停止循环,比如牛顿迭代法,要求函数值小于1E-5停止迭代,这种情况下选择while循环。
while有个do-while的用法,先执行一次循环再判断条件,这是for无法替代的。
除此之外,一般情况下,两者是可以通用的,你觉得用哪个简明就用哪个

for(初始化,只执行一次 ; 条件,每次循环都判断 ; 循环体完成后做的事) {
循环体 ;
}

函数处理leval进行判断是否跳出循环

广度遍历树。从第一层开始,level表示树节点的坐标,当遍历的节点不等于0的时候,依次循环遍历,如果data[i]大于当前比较的节点,就去右子树比较,如果小于就去左子树比较


level=1;
while(btree[level]!=0) /*比较树根及数组内的值*/
{

if(data[i]>btree[level]) /*如果数组内的值大于树根,则往右子树比较*/
level=level*2+1;
else /*如果数组内的值小于或等于树根,则往左子树比较*/
level=level*2;
}
并没有什么区别