switch一个问题 请麻烦解释下

如题所述

第1个回答  2020-01-29
程序运行后的结果为:v0=13,v1=4,v2=12
其中switch用在c语言编程中它经常跟case一起使用,是一个判断选择代码。其功能就是控制业务流程流转的。对循环中的语句做出逻辑判断和选择。
至于运行后得出的结果为v0=13,v1=4,v2=12。
首先程序初始化v0=1,v1=0,v2=0,然后c=getchar()为输入的字符adescriptor逐个赋值给字符变量c。
接着有switch做出判断。
希望能对你的理解起到帮助^^
如当第一个字符a赋给c时,语句跳到了case
‘a’,并且接下来程序按照顺序执行,此时执行v1=v1+1=1。
因为这段程序中在default前缺少了跳出循环的break,(break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,
可使程序跳出switch而执行switch以后的语句;),因此程序没有跳出循环依然执行了default:v0+=1;v2+=1;这段语句,此时v0=2,v2=1。
接下来的字符descriptor依次赋给c,再由switch判断来执行,其中字符e、i、o都执行v1+=1;和v0+=1;v2+=1;语句,
而字符d、s、c、r、p、t、r由switch判断后直接跳到default执行语句v0+=1;v2+=1;
因此v1+=1执行了4次,v0+=1;v2+=1;执行了12次
因此最终结果为v0=13,v1=4,v2=12。
相似回答