C语言中case的问题 为什么答案是2,3,4
发布网友
发布时间:2022-04-23 17:36
我来回答
共5个回答
热心网友
时间:2023-10-11 08:21
case 语句下如果没有break; 则会从第一个进入的case顺序执行下面的case。比如如果k初值为2,则会执行case 2下的语句,因为没有break,继续执行case 3下的语句。
#include <stdio.h>
int main()
{
int k=2;
switch(k)
{
case 1:
printf("%d\n",k++);
break;
case 2:
printf("%d\n",k++); //先输出k = 2, 再执行了k++
case 3:
printf("%d\n",k++); //同上
break;
case 4:
printf("%d\n",k++);
default :
printf("FULL!\n");
}
printf("%d",k); //k自增了两次,其值为4
return 0;
}
热心网友
时间:2023-10-11 08:22
你首先定义了k=2,所以先case 2:printf("%d\n",k++);输出一个2.但是你没有break输出k后k++所以k变成3,在运行case3的语句 直达4结束。所以输出234
热心网友
时间:2023-10-11 08:22
在switch语句中,因为前面没有break,所以输出2行,(2 和 3 )
最后再输出一行 4
热心网友
时间:2023-10-11 08:23
弱弱的问下楼上的大神们,printf("%d",k);这句话是在switch语句外面的,最后输出结果不是就4吗?怎么会是2 3 4?
热心网友
时间:2023-10-11 08:24
不知道你的意图是什么,应该是case 2、case 4语句后少了一个break
C语言中case的问题 为什么答案是2,3,4
case 语句下如果没有break; 则会从第一个进入的case顺序执行下面的case。比如如果k初值为2,则会执行case 2下的语句,因为没有break,继续执行case 3下的语句。include <stdio.h>int main(){ int k=2; switch(k) { case 1: printf("%d\n",k++); break; case 2: ...
vlookup 的用法
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配(FALSE)或近似匹配(TRUE),前者要求完全匹配,后者则返回最接近且不大于查找值的项。VLOOKUP能够精确查找与大致匹配数据,并跨列提取相关信息,是数据处理中非常实用的工具。Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击4步自动完成vlookup匹配,无需手写公式,免费使用!
c语言问题
当输入1的时候输出 2,3,4;输入2的时候输出3.4; 因为当b=2 是因为不满足 case1条件所以不输出,执行下面条件所以输出3,4;输入三的时候输出4;不满足case1,case2条件,所以执行default,输出4;所以答案是A 2,3,4,3,4,4;顺便附上 switch case语句用法 switch (表达式){ case 值1 ...
C语言,为什么=3
答案是正确的。switch是分支语句,每个分支遇到break的时候结束,default一般放到末尾,表示当其他分支条件不成立的时候执行该语句。但该题将其放到了首位,所以当其他分支条件不成立的时候会执行该句,但是由于default语句没有break表示结束,所以还会继续执行case 2直到遇到break时候结束。所以,当k=1时,执行...
c语言switch
\n”); } }switch结构是顺序执行的,除非break,首先这里k=3,进入case 3,打印3,然后k++,k=4 由于这里没有break,所以顺序执行case 4,打印4,然后break C
C语言为什么答案为31,为什么i为2会执行,他不由case 0控制吗?
你发的程序中,没有一个break,所以会全部执行。具体是:循环前a的值为0,循环是从i=1到4执行循环体(i=5时结束循环):当i=1时,匹配case1,执行从case1开始的3个语句,a先+3再+5变成0+3+5=8;当i=2时,匹配case2,执行从case2开始的两个语句,a也是先+3再+5变成8+3+5=16;当...
c语言的两个程序,帮忙看一下
1答案为3 讲的要点是新手常犯的错误,CASE后面没加break;switch(i)判断i的值,当找到后就会开始执行代码。没有遇到break;时会将下面的代码也执行掉。再注意CASE 2后面有BREAK,case 3,4后面都没,3里面将s赋值为1,前面的操作结果就不管了,然后执行4:s++,此时值为2.然后i等于4,再次s++,...
c语言switch语句
执行case 2是因为在switch (x) 中x=1,所以执行case 1,然而case 1 这条语句没有break,所以switch (x)在执行了case 1之后将继续往下依次执行case语句,直到碰到break就跳出switch 循环。对于“a的自加是先执行后在自加,当此程序a自加的时候没有执行其他语句啊??? ” 则是你没看到程序中的...
C语言switch语句问题(初学)
100000<I<=200000时,如I=150000你的t=I/100000;t是整形的,所以t=1或2(t=2的情况留到后面与200000<I<300000,t=2的情况一起处理),因此应该把你的处理写在case1中。200000<I<=400000,t=2或3或4(4的情况后面处理)所以程序中case2与case3要执行相同语句。400000<I<=600000时t=...
c语言 小问题
s=1,然后k=4,执行case 4:break;因为这里break了,则k=3,s还是1,执行case 3:语句,这里没有什么,则进行下一行即case 4:break;同理可知,当k=2时s+=2,得s=3;k=1时,执行case 1:case 5:s++;break;s=4,k=0时,执行case 0:case 2:s+=2;break;s=6,所以最后结果就为s=6 ...
关于C语言中case 语句的使用问题?
不正确 需要完整的句式 case后边要常数 switch(n){ case 1://如果n==1 //做些事情 break;case 2://如果n==2 //做些事情 break;} 你的情况只能使用多重if