xxs刚学有点懵
#include<stdio.h>main()
{ int i=7;
do
{
switch(i%2)
{
case 1:i++;break;
case 0:i--;continue;
}
i=i-2;
printf("i=%d\n",i);
}while(i>0);
}
为什么运行结果为i=0 i=2 i=4 i=6 #include<stdio.h>
int main()
{
int i=7;
do
{
switch(i%2)
{
case 1:i++;break;
case 0:i--;continue;
}
i=i-2;
printf("i=%d\n",i);
}while(i>0);
return 0;
}
/*
第一次 i=7 -> 7%2= 1 -> 执行i++-> i=8 -> break跳出switch -> i=i-2=6-> printf(6)
第二次 i=6 -> 6%2= 0 ->执行i-- -> i=5 -> continue开启下次循环
第三次 i=5 -> 5%2= 1 -> 执行i++-> i=6 -> break跳出switch -> i=i-2=4-> printf(4)
第四次 i=4 -> 4%2= 0 ->执行i-- -> i=3 -> continue开启下次循环
第五次 i=3 -> 3%2= 1 -> 执行i++-> i=4 -> break跳出switch -> i=i-2=2-> printf(2)
第六次 i=2 -> 2%2= 0 ->执行i-- -> i=1 -> continue开启下次循环
第七次 i=1 -> 1%2= 1 ->执行i++ -> i=2 -> break跳出switch -> i=i-2=0-> printf(0)
i = 0 跳出while,程序结束
*/ 大马强 发表于 2022-2-25 17:47
谢谢哥,你太照顾新手 我只有30天 发表于 2022-2-25 17:57
谢谢哥,你太照顾新手
真xxs?
小学都开始卷了吗{:10_266:} 大马强 发表于 2022-2-25 18:04
真xxs?
小学都开始卷了吗
哥为什么我发不了帖子了 我只有30天 发表于 2022-2-26 16:16
哥为什么我发不了帖子了
发不了可能是发帖子地方不对
有些教学的地方只能管理员发的 大马强 发表于 2022-2-26 17:13
发不了可能是发帖子地方不对
有些教学的地方只能管理员发的
哥快去回答发出来了{:5_109:} 你帖子又在审核了,我就在这里说吧
我先说一说
首先你在代码没按着标准来写
其次,我不知道你是不是故意的将这段代码位置颠倒
default:printf("\n");
case 2:printf("&");
稍加修改,这个结果又不一样了
#include<stdio.h>
int main() // 要按标准写
{
int i;
for(i=1;i<=5;i++)
switch(i%5)
{
case 0:printf("*");break;
case 1:printf("#");break;
case 2:printf("&");
default:printf("\n");
}
return 0; // 要按标准写
}
我等级不够加不了
本帖最后由 我只有30天 于 2022-2-26 17:46 编辑大马强 发表于 2022-2-26 17:30
你帖子又在审核了,我就在这里说吧
我先说一说
首先你在代码没按着标准来写
太麻烦咱能加v聊吗 i=1;i<=5;i++)
switch(i%5)
{
case 0:printf("*");break;
case 1:printf("#");break; //第一循环1 % 5 =1
default:printf("\n"); // 说明还是优先case, 第三次3 % 5 = 3
case 2:printf("&"); // 第二次循环 2 % 5 = 2 第三次3 % 5 = 3, 为啥会执行这个,我觉得就可能是默认执行default后就不拘于case的值了,因为标准写法default一般位于最后一句
}
页:
[1]