在此代码中:
for(int i=0; i<key; i++){
int counter=((len)/div);
}
循环控制变量int i
是否与int counter
相同?如果没有,为什么int counter
能够在没有被循环之前被初始化的情况下被使用?
下面的完整功能代码。
void splitEncoded(string strarray[], int key, string msg){
int cycle= (2 * key)-2;
int div=cycle;
int len=msg.length();
int remainder=0;
int pos=0;
for(int i=0; i<key; i++){
int counter=((len)/div);
if(cycle!=0 && remainder!=0){
counter= 2*counter;
if((len%div)>=(div-(i-1))){
counter+=2;
}
else if((len%div)>i){
counter++;
}
}
else if(((len)%div)>i){
counter++;
}
strarray[i]=msg.substr(pos,counter);
pos+=counter;
cycle=cycle-2;
remainder+=2;
}
}
答案 0 :(得分:0)
循环控制变量“int i”是否与“int counter”相同?
呃,不,变量不一样。他们有不同的名字......
如果没有,为什么“int counter”能够在没有被循环之前初始化的情况下使用?
因为它是在循环内初始化的。
int counter=((len)/div);
上面的行在使用操作counter
的结果初始化的循环的每次迭代中创建一个名为((len)/div)
的 new 变量。