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