我怎么感觉课本的解释错了。

switch(g/10)
{
case 10:
case 9:printf("A\n");
case 8:printf("B\n");break
这程序大概就如此,课本:当表达式的值与某一个case后面的常量表达式的值一样时
则执行case后面的语句,否则,执行default后面的语句。
然而当我输入g=90时,它怎么还输出B??

书本的 说法并没错,只是有点歧义。
case 8也是case 9后面的语句,不是吗。

case 9:printf("A\n");后面少一个break;

执行case后面的语句,遇到break退出,否则一直往下执行,哪怕有另一个case

case只是选择从哪个地方开始执行,执行到break结束跳出

课本的解释没错啊,你输入90,得出的结果是9,执行case9后面的内容,由于你print()后面没有break,所以它会继续执行后面的case8,直到遇到break

课本的解释没错啊,你输入90,得出的结果是9,执行case9后面的内容,由于你print()后面没有break,所以它会继续执行后面的case8,直到遇到break