请教这个程序的运行过程,为什么s=1,结果会输出65

C语言 码拜 8年前 (2016-04-11) 1244次浏览
#include<stdio.h>
int main()
{
int s;
scanf(“%d”,&s);
while (s>0)
{
switch (s)
{
case 1: printf(“%d”,s+5);
case 2:printf(“%d”,s+4);break;
case 3:printf(“%d”,s+3);
default : printf(“%d”,s+1);break;
}
scanf(“%d”,&s);
}
}
解决方案

20

原因是你输入1,会进入case 1的分支,然后输出6
原因是没有break,会继续执行case 2,然后输出5,然后break;
执行到scanf(“%d”,&s);等待输入

40

建议题主再去看下switch….case
case只是个标签,表示跳转到那里开始执行,假如没有break,它会一直往后面执行
你输入一个小于0的数就能跳出while循环了

10

       对于switch(i)语句,根据i的值进入对应的case语句中,假如执行完该case之后的语句没有遇到break,则会按顺序继续运行下面的case语句,依次类推,直到遇到break或运行到最后一行case才会退出。
至于while()怎么退出……只要满足while()括号里的条件,程序就会一直运行的,通过scanf(“%d”,&s);来改变s的值,假如你输入的s小于0,不满足while()的条件,程序就会推出while了。
这些都是基础,不会的时候多看基本概念。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明请教这个程序的运行过程,为什么s=1,结果会输出65
喜欢 (0)
[1034331897@qq.com]
分享 (0)