C语言 关于计算的问题?


# include <stdio.h>
main()
{ 
int  c;
    while( (c=getchar( ))!=’\n’)
switch (c-‘2’)
{ case 0:
 case 1:  putchar (c+4);
 case 2:  putchar (c+4);   break;
case 3:  putchar (c+3);
default:  putchar (c+2);   break;
}
printf(“\n”);
}

这个是什么意思 怎么算的


#include <stdio.h>
main()
{
int c;
while((c=getchar())!='\n') //读取一个键盘输入的字符,如果不是换行符,进入下面循环
{
switch(c-'2') //输入的字符与字符'2'相减之后得到值与case里值就比较
{
case 0: //等于0执行这条语句,没有break继续执行,直到遇到break为止
case 1:  putchar (c+4); //等于1执行这条语句,没有break继续执行,直到遇到break为止
case 2:putchar(c+4);break;///等于2执行这条语句,遇到break停止
case 3:putchar(c+3);//等于3执行这条语句,没有break继续执行,直到遇到break为止
default:putchar(c+2);break;///前面没有等于的值执行这条语句,遇到break停止
}
}
printf("\n");
}

读取字符,switch里为字符减去字符'2'的值,为0,一直走到case 2结束,putchar就是打印字符c加上一个值后所对应的ascii码的字符,switch看的懂吧