将if条件写到for循环的条件里面是不行的
for(size_t i = 1; i <= 4; i++){
if(s.size()%i == 0){
cout<<i<<" ";
}
}
运行结果为:
1 2 4
for(size_t i = 1; i <= 4 && 4%i == 0; i++){
cout<<i<<" ";
}
运行结果为:
1 2
原因是for循环内的条件不符合会跳出循环,相当于执行break语句;而for内的if条件不和,会执行下一条语句,这里没有下一条,相当于执行了continue。
我是笨蛋,刚开始学for的时候没犯过,现在犯了,水篇文章作为警示。