在mooc上听了几节课,练习题里做到,答案是1和2……1我可以理解,2是怎么回事?实在想不通。
int i=1;
switch ( i%3 ) {
case 0: printf("zero");
case 1: printf("one");
case 2: printf("two");
}
我好像又没说全,问的是输出结果。初学C,连问题出在哪儿都不知道……
1!——%是取余除啊,即取除以除数后被除数的剩余部分:1除以3得0余1,所以结果是1。
我也觉得是1,我大概理解错了题目的意思。。。?
这是题目:
int i=1;
switch ( i%3 ) {
case 0: printf("zero");
case 1: printf("one");
case 2: printf("two");
}
问输出结果,求大神指点啊QAQ自学真的不知道问题出在哪儿
结果是onetwo。
追问那就是我理解错了,这是为什么啊,不明白
追答i%3就是1%3,1%3==1,执行case 1:后面的语句卖到遇到break;或swith的最后一个}。
求大神帮我看看题目,想不出来浑身难受:
int i=1;
switch ( i%3 ) {
case 0: printf("zero");
case 1: printf("one");
case 2: printf("two");
}
问输出结果
至于1%3,我直接用编译器算了。。确实是1
这个是因为每个case最后没写break;导致你误以为2了
你每个printf最后加个break;再观察一下