关于c语言的简单的一个问题

#include<stdio.h>
int main(int argc,char **argv){
        char ch[8]={"652ab21"};
        int i=0,s=0;
        while(ch[i]>'0'&&ch[i]<'9'){
        s=10*s+ch[i]-'0';
        i+=2;
        }
        printf("%d\n",i);
}

结果是62 , i的为什么i的值停留在4 ,如果i+=2执行以后 i变为6的话 ch[6]也就是最后一个数值也符合循环条件的,为什么但他没进行循环。

i = 0时, ch[0] = 6 条件满足进入循环
s = 6

i = 2时, ch[2] = 2 条件满足进入循环
s = 62

i = 4时, ch[4] = b 条件不满足跳出循环

所以 s = 62,i = 4

ch[4]是多少啊?能通过while判断吗?

因为循环遍历到字母的时候就已经跳出循环了