请帮解释下这个C++程序.

来源:百度知道 编辑:UC知道 时间:2024/06/04 03:50:11
请高手看看这个程序运行结果并解释下程序运行过程k值的变化.为何得这个结果.

#include<iostream>
using namespace std;
int 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;
default:k=k/3;
}
k++;
}while(c<'G');
cout<<"k="<<k<<endl;
system("pause");
return 0;
}

#include<iostream>
using namespace std;
//使用命名空间std
int main()
{int k=0;
char c='A';
do //开始do_while循环
{ switch(c++) //判断条件c++
{
case 'A':k++;
break; //注意break
case 'B':k--; //相当于k++;break;
case 'C':k+=2;
break;
case 'D':k=k%2;
continue; //开始下一次do_while循环,跳到while中的判断
case 'E':k=k*10;
break;
default:k=k/3;
}
k++;
}while(c<'G');
cout<<"k="<<k<<endl;
system("pause");
return 0;
}

第一次循环后,k=2
第二次循环后,k=4
第三次循环后,k=7
第四次循环后,k=1
第五次循环后,k=11
第六次循环后,k=4
循环条件c<'G'不成立,退出。
输出结果
k=4

答案是4
#include<iostream>
using namespace std;
int main()
{int k=0;
char c='A';
do
{ switch(c++) //c是循环变量从'A'到'F'
{
case 'A