注:文章内容来源于网络,真实性有待确认,请自行甄别。
提问c++的问题#include"iostream.h"void
发表于:2024-10-24 00:00:00浏览:11次
问题描述:#include"tream.h"
void main()
{int k=0;
char c='A';
do{switch(c++)
{case'A':k++;break;
case'B':k--;
case'C':k+=2;break;
case'D':k=k%2;continue;
case'E':k=k*10;break;
/3;}
k++;}
while(c<'G');cout<<"k="<<k<<endl;}
最后结果是k=4,请详细解释一下
第一次执行循环:c++ == 'A',swch语句执行:k++; break; 退出switch之后执行k++; 执行完本次循环后,c == 'B',k == 2。
第二次:c++ == 'B',switch语句执行:k--; 由于case 'B'块不含break语句,程序继续执行'C'块:k += 2; break; 退出switch后执行k++; 执行完本次循环后,c == 'C',k == 4。
第三次:进入'C'块,执行k += 2; break; 退出switch后执行k++; 执行完此次循环后,c == 'D',k == 7。
第四次:进入'D'块,执行k = k % 2,遇到continue语句,回到循环开头。此时c == 'E',k == 1。
第五次:进入'E'块,执行k = k * 10; break; 退出switch后执行k++; 执行完此次循环后,c == 'F',k == 11。
第六次:进入default块,执行k = k / 3; 退出switch后执行k++; 执行完此次循环后,c == 'G',k == 4。
当c == 'G'时,不再满足循环条件c < 'G',程序退出do循环,输出k值为4。
栏目分类全部>