有差异的,while循环结束后的j值比for循环结束后的j值大1因为你是用break跳出的for循环如果改为for(;o!=0;j++){ a[j] = o%t;o/=t;}的话,就和while循环完全一样了
你的for循环中没有设置循环条件,而是在循环中加了判断条件。while则是设置了循环条件,只要满足条件就会一直循环,直到不满足跳出。
区别在o/=t的值和j++上for中o==0时直接退出了循环。while中o==0还要算一次j++.