这一题的运行结果是啥,是如何计算的,请详细一点,输入数据7654↙

#include<stdio.h>
int main( )
{
char c ;
c = getchar( );
while ( c != '\n' )
{
switch ( c - '2' )
{
case 0 :
case 1: putchar( c + 4 ) ;
case 2: putchar( c + 4 ) ;
break;
case 3: putchar( c + 3 ) ;
case 4: putchar( c + 2 ) ;
break;
}
c = getchar( );
}
printf( "\n" ) ;
return 0 ;
}

输入7654
c='7' : c-'2'=5,没有符合的case
c='6' :c-'2'=4,执行case 4,打印c+2,也就是'8'
c='5' :c-'2'=3,执行case 3,打印c+3,也就是'8',
没有break语句,继续执行case 4,打印c+2,也就是'7'
c='4' :c-'2'=2,执行case 2,打印c+4,也就是'8',有break,退出循环
所以显示结果就是8878