c语言 switch case % 的问题

switch ( i%3 ) {
case 0: printf("zero");
case 1: printf("one");
case 2: printf("two");
}
运行的结果是onetwo
这是为什么,不应该是 one 吗?

因为case 1没有加break,所以会执行后续的case 语句

每个printf方法后面加一条break语句,没有break语句会顺序往下执行所有的case语句。