int c=5,k;
for(k=1;k<3;k++)
switch(k)
{
default:c+=k;
case 2: c++;break;
case 4: c+=2;break;
}
printf("%d\n",c);
这个还是比较好理解的,输出结果为7。
循环两次,第一次k=1,进入default语句,执行c+=k,即c=5+1=6;第二次k=2,进入case 2语句,执行c++,即c=6+1=7。由于没有case 3,所以不会进入任何语句。最后输出c的值为7。
输出结果为7
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
看代码要一层一层看
显然switch是包含在循环里面的
那么先看循环,k=1;k<3,很显然循环2次,k的值分别是1和2
k是1时,进入default:分支,执行c+=k,c=6,由于default分支没有break,会贯穿标签,继续执行下面的c++,所以c=7
k是2时,进入case 2,c++,c=8
最终c的值是8
代码展示📜:
void PrintBoard(char Board[ROWS][COLS], int row, int col)
{
printf("----------扫雷游戏----------\n");
int i = 0;
for (i = 0; i <= col; i++)//列号
{
printf("%d ", i);
}
printf("\n");
for (i = 1; i <= row; i++)//行号
{
int j = 0;
printf("%d ", i);
for (j = 1; j <= col; j++)
{
printf("%c ", Board[i][j]);//打印数组中的内容
}
printf("\n");
}
printf("----------扫雷游戏----------\n");
}
说明:
在打印界面最上面和最下面都需要打印分隔线,打印数组中的内容时为了让玩家能够快速识别坐标位置,所以需要打印行号、列号
代码效果👀: